有关构造函数的问题
class date
{public:
date(){month=day=year=0;
cout<<"default constructor called.\n";}
date(int m,int d,int y)
{month=m;day=d;year=y;
cout<<"constructor called.\n";}
date(date &p)
{month=p.month;day=p.day;year=p.year;
cout<<"copy\n";}
~date()
{cout<<"destructor called.\n";}
void print() {cout<<"month="<<month<<",day="<<day<<",year="<<year<<endl;}
private:
int month,day,year;
};
void main()
{date dates[5]={date(7,22,1998),date(7,23,1998),date(7,24,1998)};
dates[3]=date(7,25,1998);
dates[4]=date(7,26,1998);
for(int i=0;i<5;i++)
dates[i].print();
}
其中
date dates[5]={date(7,22,1998),date(7,23,1998),date(7,24,1998)};
里的date(7,22,1998)怎么理解?是调用构造函数吗?但是构造函数是系统自动调用,不允许程序员调用的,这究竟是怎么回事?请各位帮帮忙!