日本大左图片:VC++,构造函数,和析构函数不解

来源:百度文库 编辑:高校问答 时间:2024/04/29 03:19:20
那位高手能帮我解释一下,构造函数,和析构函数,下边是构造函数的一个重载,是什么意思啊?那个高手能帮忙详细注解一下啊
class CDate
{
public:
CDate();
CDate(int day);
CDate(int month,int day);
CDate(int year,int month,int day);
private;
int nYear,nMonth,nDay;
};
CDate::CDate()
{
nMonth=7;nDay=30;nYear=2002;
cout<<nYear<<"-"<<nMonth<<"-"<<nday<<endl;
}
CDate::CDate(int day)
{
nMonth=7;nDay=30;nYear=2002;
cout<<nYear<<"-"<<nMonth<<"-"<<nday<<endl;

}
CDate::CDate(int month,int day)
{
nMonth=7;nDay=30;nYear=2002;
cout<<nYear<<"-"<<nMonth<<"-"<<nday<<endl;
}
CDate::CDate(int year,int month,int day)
{
nMonth=7;nDay=30;nYear=2002;
cout<<nYear<<"-"<<nMonth<<"-"<<nday<<endl;
}
void main()
{
CDate day1;
CDate day2(28);
CDate day3(8.1);
CDate day4(2003,3,10);
}

函数重载是面向对象多态性的其中一种体现形式
说简单点就是编译器根据参数表的不同调用相应不同的函数
先说一下构造函数
构造函数是在对象被创建时系统自动调用的,不能人为显式调用。
1。CDate();
2。CDate(int day);
3。CDate(int month,int day);
4。CDate(int year,int month,int day);
是四个同名函数,但他们的参数表不同
1 无参数
2 一个int型参数
3 两个int型参数
4 三个int型参数

1。CDate day1;------------------------CDate();
2。CDate day2(28);--------------------CDate(int day);
3。CDate day3(8.1);-------------------CDate(int month,int day);
4。CDate day4(2003,3,10);------------CDate(int year,int month,int day);
是四个创建CDate对象的语句,且他们分别提供0,1,2,3各参数
这样系统根据参数的不同调用四个构造函数中参数表与创建对象时所提供的参数表相匹配的一个

构造函数就是初始化对象的数据成员,
析构函数就释放对象的数据空间,结束对象的生命!