我对这个C++的习题(构造函数的重载)有点纳闷,请各位帮忙。

来源:百度知道 编辑:UC知道 时间:2024/07/02 14:06:32
编译时有一个错误:error C2228: left of '.display' must have class/struct/union type
习题程序为:
#include <iostream>
using namespace std;
class date
{
public:
date(int,int,int);
date(int,int);
date(int);
date();
void display();
private:
int month;
int day;
int year;
};
date::date(int m,int d,int y):month(m),day(d),year(y)
{}
date::date(int m,int d):month(m),day(d)
{year=2005;}
date::date(int m):month(m)
{
day=1;
year=2005;
}
date::date()
{
month=1;
day=1;
year=2005;
}
void date::display()
{
cout<<month<<"/"<<day<<"/"<<year<<endl;
}

int main()
{
date d1(10,13,2005);
date d2(12,30);
date d3(10);
date d4();
d1.display();
d2.display();
d3.display();
d4.display();
return 0;
}

楼上说得不对吧。。
是构造的时候错误
date d1(10,13,2005);
date d2(12,30);
date d3(10);
date d4();
.....

date d4();错了 改为date d4;
用 date d4();的话 编译器把d4理解为一个函数了 其实应该是一个类

cout<<month<<"/"<<day<<"/"<<year<<endl;
这句变量没有定义