沂蒙山根据地景区:c++中关于构造函数的问题..请大人们帮忙啊

来源:百度文库 编辑:高考问答 时间:2024/05/09 06:15:21
#include<iostream.h>
class Date
{ public: Date( );
Date( int y, int m, int d);
Void print( );
private: int year, month, day;
};
Date::Date( )
{ year=2000; month=1; day=1;
cout<<"调用无参构造函数"<<endl;
}
Date::Date(int y, int m, int d)
{ year= y; month= m; day= d;
cout<<"调用有参构造函数"<<endl;
}
Date::print( )
{ cout<<year<<","<<month<<","<<day<<endl; }
void main( )
{ Date today(2001,12,10);
Date day;
Date * tomorrow=new Date(2001,12,12);
Cout<<today.print( )<<day.print( )<<tomorrow->print()<<endl;
}

程序中Date * tomorrow=new Date(2001,12,12);这句话是什么意思??????那个new是个什么东西???怎么来的...???????

Date * tomorrow=new Date(2001,12,12);

首先new是一个c++运算符,和那些+-*/一样,new用于创建一个类的实例,就是对象。

new Date(2001,12,12);是一个表达式,计算这个表达式的值的时候,会在heap中创建类Date的一个对象,这个时候回调用类Date的构造函数对对象进行初始化,

new Date(2001,12,12);表达式的值类型是一个Date指针,指想被创建的对象的首地址