我的目的是用c++(1)编写一个Date(年、月、日)类和DateTime(年、月、日、时、分、秒)类;(2)DateTime类为Date类的子类;(3)添加相关函数,完成加一秒的操作;(4)给出相应的构造和析构函数。下面是我的代码,这段代码出现了错误,请找出并用c++改正#include<iostream> using namespace std; class date { public: int year; int month; int day; date() { year=2023; month=5; day=23; } ~date() {cout<<"date释放完毕"; } void display(void) { cout<<year<<":"<<month<<":"<<day; } }; class datetime:public date {public: int hour; int minute; int second; //原 datetime() datetime() { hour=13; minute=51; second=33; } void change(datetime& d1); void display(void) { cout<<year<<":"<<month<<":"<<day<<":"<<hour<<":"<<minute<<":"<<second; } ~datetime() {cout<<"datetime释放完毕"; } }; void change(datetime& d1) { d1.second+=1; } int main() {date d1; datetime d2; d1.display; cout<<'\n'; d2.display; cout<<'\n'; change(d1); d2.display; return 0; }
时间: 2024-01-31 20:02:28 浏览: 57
DateTime类的属性-c#经典入门教程
这段代码存在以下错误:
1. 在调用 `d1.display` 和 `d2.display` 函数时,应该加上圆括号,即 `d1.display()` 和 `d2.display()`。
2. 在 `datetime` 类中定义的 `change` 函数应该移动到类定义的内部,或者改为全局函数并在类外部声明实现。
3. 在 `datetime` 类中的构造函数应该调用父类 `date` 的构造函数,以初始化年月日。
下面是修改后的代码:
```cpp
#include<iostream>
using namespace std;
class date {
public:
int year;
int month;
int day;
date() {
year = 2023;
month = 5;
day = 23;
}
~date() {
cout << "date释放完毕";
}
void display(void) {
cout << year << ":" << month << ":" << day;
}
};
class datetime : public date {
public:
int hour;
int minute;
int second;
datetime() : date() {
hour = 13;
minute = 51;
second = 33;
}
void change() {
second += 1;
}
void display(void) {
cout << year << ":" << month << ":" << day << ":" << hour << ":" << minute << ":" << second;
}
~datetime() {
cout << "datetime释放完毕";
}
};
int main() {
date d1;
datetime d2;
d1.display();
cout << '\n';
d2.display();
cout << '\n';
d2.change();
d2.display();
return 0;
}
```
阅读全文