3、定义一个时间类1) 类中有3个私有数据成员(Hour,Minute,Second)和两个公有成员函数(SetTime和Print_Time)。SetTime根据传递的3个参数为对象设置时间;Print_Time负责将对象表示的时间输出。定义一个时间类对象,设置时间为9点20分30秒并显示该时间。2) 使用构造函数代替上面的SetTime成员函数,并在主函数中使用构造函数设置时间为10点40分50秒,并显示该时间。3) 重载时间类的构造函数(不带参数),使得小时、分、秒均为0。4) 在时间类的析构函数中输出“Good bye!”。5) 定义拷贝构造函数并使用。在时间类中定义一个静态数据成员,记录当前的年份2023年
时间: 2023-06-08 20:06:38 浏览: 106
1. 时间类的定义:
```c++
#include <iostream>
class Time {
private:
int Hour; // 小时
int Minute; // 分钟
int Second; // 秒钟
public:
// 构造函数
Time(int h, int m, int s) {
Hour = h;
Minute = m;
Second = s;
std::cout << "Create a Time object" << std::endl;
}
// 析构函数
~Time() {
std::cout << "Good bye!" << std::endl;
}
// 将时间设置为h小时m分钟s秒钟
void SetTime(int h, int m, int s) {
Hour = h;
Minute = m;
Second = s;
}
// 打印当前时间
void Print_Time() {
std::cout << Hour << ":" << Minute << ":" << Second << std::endl;
}
// 静态成员变量,记录当前年份
static int year;
// 拷贝构造函数
Time(const Time& other) {
Hour = other.Hour;
Minute = other.Minute;
Second = other.Second;
std::cout << "Copy a Time object" << std::endl;
}
};
int Time::year = 2023; // 初始化静态成员变量
int main() {
// 定义一个时间类对象,设置时间为9点20分30秒并显示该时间
Time t1(9, 20, 30);
t1.Print_Time();
// 使用构造函数代替上面的SetTime成员函数,并在主函数中使用构造函数设置时间为10点40分50秒,并显示该时间
Time t2 = Time(10, 40, 50);
t2.Print_Time();
// 重载时间类的构造函数(不带参数),使得小时、分、秒均为0
Time t3;
t3.Print_Time();
// 在时间类的析构函数中输出“Good bye!”
// 程序结束时,t1、t2、t3 会自动调用析构函数
return 0;
}
```
2. 以上程序已经使用构造函数代替了 SetTime 成员函数。
3. 在时间类中重载构造函数,使得小时、分、秒均为0:
```c++
class Time {
private:
int Hour; // 小时
int Minute; // 分钟
int Second; // 秒钟
public:
Time() : Hour(0), Minute(0), Second(0) {
std::cout << "Create a Time object with default value" << std::endl;
}
// ...
};
```
4. 在析构函数中输出 "Good bye!":
```c++
~Time() {
std::cout << "Good bye!" << std::endl;
}
```
5. 拷贝构造函数的定义:
```c++
// 拷贝构造函数
Time(const Time& other) {
Hour = other.Hour;
Minute = other.Minute;
Second = other.Second;
std::cout << "Copy a Time object" << std::endl;
}
```
在主函数中使用拷贝构造函数,例如:
```c++
Time t4 = t1;
t4.Print_Time();
```
阅读全文