网站大量收购独家精品文档,联系QQ:2885784924

05 第五章 类及对象(一).ppt

  1. 1、本文档共59页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
…… int main() { // 创建两个循环计数器对象并初始化 CIRCULAR_NUMBERS angle(0, 359, 250); // 角度循环计数器 CIRCULAR_NUMBERS month(1, 12, 11); // 月份循环计数器 ?…… } 如: class TDate1 { public: TDate1(int y,int m,int d); ~TDate1( ); void Print( ); private: int year,month,day; }; 构造函数的说明 析构函数的说明 一般成员函数的说明 函数名与类名一致,无类型但可有参数 名字与类名一致,前有~,无类型无参数 TDate1::TDate1(int y,int m,int d) { year=y;month=m;day=d; coutConstructor called.\n; } TDate1::~TDate1( ) { coutDestructor called.\n; } void TDate1::Print( ) {coutyear.month.dayendl;} 构造函数的定义 析构函数的定义 一般函数的定义 与其他成员函数定义一样,两种函数的定义可放在类体内,也可放在类体外 #include iostream.h #include tdate1.h void main( ) { TDate1 today(2007,4,1),tomorrow(2007,4,2); couttoday is; today.Print( ); couttomorrow is; tomorrow.Print( ); } 执行程序后,输出结果为: 将含有类定义的头文件包含进来 对象定义时,自动调用构造函数 函数结束时,自动调用析构 Constructor Called. Constructor Called. today is 2007.4.1 tomorrow is 2007.4.2 Destructor called. Destructor called. 构造函数的特点有: 程序中不能直接调用构造函数,在创建对象时系统自动调用构造函数。 构造函数可以重载,即可定义多个参数个数不同的函数 构造函数有隐含的返回值,并由系统内部使用 析构函数的特点有: 一个类中只能定义一个析构函数,即不能重载 析构函数可以被调用,也可系统调用 被自动调用的情况有两种: 在一个函数体内定义的一个对象,当函数结束时 用new运算符动态创建的一个对象,在使用delete释放时 全局对象,静态对象的构造函数 全局对象,静态对象的构造函数在main()函数执行之前就被调用,局部静态对象的构造函数是当程序第一次执行到相应的声明语句时才被调用. P157,程序5.4.4 多种形参的构造函数,P157,程序5.4.5 二、析构函数 类中的一个特殊函数 功能:为撤销一个类的对象做善后清理工作(如:回收存储空间) 一般形式:~类名( ); 特点: 析构函数是公有的,可由用户提供,也可由系统提供缺省的。 析构函数不可带任何参数,无返回值,也不能指定返回类型。 在对象生存期结束时,程序将自动调用该对象所属类的析构函数,调用且仅调用一次。 例: #include iostream.h? class DEMO_CLASS { public: DEMO_CLASS(int i); ~DEMO_CLASS(); };? DEMO_CLASS::DEMO_CLASS(int i) { cout Initial value is i \n; return; }? DEMO_CLASS::~DEMO_CLASS() { cout Goodbye!\n; return; }? int main() { DEMO_CLASS obj(30);// 声明一个对象 cout This is the end of main().\n; return 0; } 运行结果: Initial value is 30 This is the end of main(). Goodbye! 缺省构造函数和缺省析构函数 在类定义中可以不定义任何构造函数,这时编译器会自动生成一个不带参数的缺省构造函数。 其格式为: 类名::缺省构造函数名() { } (何时不能

文档评论(0)

xuefei111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档