描述
设计一个带重载构造函数的日期类Date,数据成员有年、月、日;成员函数包括:一个带参数的构造函数Date(int,int,int),一个不带参数的构造函数(设置日期为1900年1月1日),一个按“年-月-日”格式显示日期的函数,一个对数据成员赋值的函数void init(int,int,int)。
主函数中对类的测试要求:
- 分别使用两个不同的重载构造函数创建两个日期类对象(必须为d1,d2,d2初始值为2100-12-12);
- 按“年-月-日”格式分别显示两个对象的值;
- 输入数据,用init函数为d1赋值;
4.按“年-月-日”格式显示对象d1的值;。
主函数如下:
int main() {
int y, m, d;
cin >> y >> m >> d;
Date d1, d2(2100, 12, 12);
d1.show();
d2.show();
d1.init(y, m, d);
d1.show();
return 0;
}
输入
给d1赋值的数据。
输出
d1的默认值
d2的初始值
d1赋值后的值
答案如下:
//定义一个带重载构造函数的日期类
#include <iostream>
using namespace std;
class Date {
int year, month, day;
public:
Date();
Date(int year, int month, int day);
void show();
void init(int y, int m, int d);
};
Date::Date() {
year = 1900;
month = 1;
day = 1;
}
Date::Date(int year, int month, int day) {
this->year = year;
this->month = month;
this->day = day;//this指针分辨形参和数据
}
void Date::init(int y, int m, int d) {
year = y;
month = m;
day = d;
}
void Date::show() {
cout << year << '-' << month << '-' << day << endl;
}
int main() {
int y, m, d;
cin >> y >> m >> d;
Date d1, d2(2100, 12, 12);
d1.show();
d2.show();
d1.init(y, m, d);
d1.show();
return 0;
}