c++的类,下面用一个日期类来描述,包括构造函数和析构函数的实例和测试:
#include<iostream>
using namespace std;
class date
{
private:
int year,month,day;//可不写private,则默认为私有成员;
public:
//date(int y,int m,int d);
date():year(1900),month(1),day(1){} //无参构造函数
date(int yy,int mm=1,int dd=1); //默认参数构造函数
date(date &d):year(d.year),month(d.month),day(d.day){} //日期类对象构造函数//又称作复制构造函数
/*以上三个函数都是date函数,函数重载,根据实际情况再确定调用哪个函数*/
void cin_date(int,int,int);
void cout_date();
//~date() {} ;//析构函数(空函数没有一条语句,感觉不到在运行) 下面两个为测试的析构函数
//~date() { cout<<"撤销日期对象\n";}; //添加语句查看析构函数运行
~date()
{
static int i=1;
cout<<"撤销日期对象"<<i<<endl;
i++;
}
};
/*date::date(int y=1900,int m=1,int d=1)//构造函数
{
year=y;
month=m;
day=d;
}
*/
//默认参数构造函数的定义
date::date(int yy,int mm,int dd):year(1900),month(1),day(1)
{
if(yy>=1900&&yy<=9999) year=yy;
else
{
return;
}
if(mm>=1&&mm<=12) month=mm;
else
{
year=1900;
return;
}
if(dd>=1&&dd<=31) day=dd;
else
{
year=1900;
month=1;
return;
}
}
void date::cin_date(int y,int m,int d)
{
//cin>>y>>m>>d;
year=y;
month=m;
day=d;
//cin>>y>>m>>d;
}
void date::cout_date()
{
cout<<year<<"-"<<month<<"-"<<day<<endl;
//cout<<day<<"-"<<month<<"-"<<year<<endl;
}
int main()
{
//构造函数的测试
date date1;//没有给任何参数————调用无参构造函数
date1.cout_date();
date date2(2006);//月份和天都省去(月,天 默认),调用默认参数构造函数 :date 2(2006,4)或者date(2006,4,1)都是一样
date2.cout_date();
date date3(date2);//调用日期类构造函数———date3以date2的参数内容为准
date3.cout_date();
//输入输出测试
date1.cin_date(2017,6,22);//输入date1
date1.cout_date();
//system("pause");
date date4;
date4=date1;//等价于调用复制构造函数date date4(date1)
date4.cout_date();
return 0;
}