第5章 类和对象1(4)

2019-02-15 16:06

析构函数的功能:

是用来释放一个对象。

例5.5 重新定义日期类 //tdate1.h class TDate1 { public:

TDate1(int y,int m,int d); ~TDate1( );

void IsLeapYear( ); void Print( ); private:

int year,month,day; };

TDate1::TDate1(int y,int m,int d) { year=y; month=m; day=d;

cout<<”Constructor called.\\n”; }

TDate1::~TDate1( )

{ cout<<”Destructor called.\\n”;}

void TDate1::IsLeapYear( )

{ if(year%4==0 && year0!=0 ||

year@0==0)

cout<<”Is leap year.\\n”; else

cout<<”Is not leap year.\\n”; }

void TDate1::Print( )

{ cout<

#include #include”tdate1.h” void main( )

{ TDate1 today(2004,10,8),

tomorrow(2004.10,9);

cout<<”today is “; today.Print( );

today.IsLeapYear( ); cout<<”tomorrow is “; tomorrow.Print( ); }

输出:

Constructor Called. Constructor Called. today is 2004.10.8 Is leap year.

tomorrow is 2004.10.9 Destructor Called. Destructor Called.

构造函数的特点:

1.构造函数是成员函数。

2.构造函数与类同名,不指定函数类型。 3.构造函数可以重载。

4.在创建对象时系统自动调用构造函数,在程序中不能直接调用构造函数。

析构函数的特点:

1.析构函数是成员函数。

2.析构造函数与类同名,并在前面加“~”字符,不指定函数类型,也没有参数。

3.一个类中只可以定义一个析构函数。 4.系统可以自动调用析构函数,在程序中也可以直接调用析构函数。

5.3.2 缺省构造函数和缺省析构函数

缺省构造函数的格式: 类名::缺省构造函数名( ) { }

缺省构造函数在类中没有定义任何构造函数时系统自动生成;也可以用户自己定义。

例如:

Tpoint p1,p2;

缺省构造函数对p1和p2进行初始化。对象的所有数据成员都是不确定的。

缺省析构函数的格式: 类名::~缺省析构函数名( ) { }

缺省析构函数在类中没有定义析构函数时系统自动生成,是一个空函数。

例5.6 重新定义日期类 //tdate2.h class TDate2 { public:

TDate2( );

~TDate2( );

void SetDate(int y,int m,int d); void IsLeapYear( ); void Print( ); private:

int year,month,day; };

TDate2::TDate2( )

{ cout<<”Constructor called.\\n”;} TDate2:: ~TDate2()

{ cout<<”Destructor called.\\n”;}

void TDate2::SetDate(int y,int m,int d) { year=y; month=m; day=d; }

void TDate2::IsLeapYear( )

{ if(year%4==0 && year0!=0 ||

year@0==0)

”Is leap year.\\n”; ”Is not leap year.\\n”;

cout<< else

cout<<


第5章 类和对象1(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:同济大学环境科学与工程学院2011年硕士研究生入学考试试卷A+B组

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: