[工作范文]第9章 关于类和对象的进一步讨论.ppt

[工作范文]第9章 关于类和对象的进一步讨论.ppt

  1. 1、本文档共127页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工作范文]第9章 关于类和对象的进一步讨论

《 C++程序设计》 第9章 关于类和对象的进一步讨论 9.1 构造函数 9.2 析构函数 9.3 调用构造函数和析构函数的顺序 9.4 对象数组 9.5 对象指针 9.6 共用数据的保护 9.1 构造函数 9.1.1 对象的初始化 9.1.2 构造函数的作用 9.1.3 带参数的构造函数 9.1.4 用参数初始化表对数据成员初始化 9.1.5 构造函数的重载 9.1.6 使用默认参数的构造函数 在建立一个对象时,常常需要进行初始化,即对数据成员赋初值。如果一个数据成员未被赋值,那么它的值是不可预知的,这显然与客观事物的属性不相符。 注意: 类的数据成员是不能在声明类时初始化的。 如果一个类中所有的数据成员都是公用的,则可以在定义对象时对数据成员进行初始化。 【例】 class Time { private: int hour; int minute; int sec; }; Time t1={14,56,30}; //将t1初始化为14:56:30 如果一个类中的数据成员是私有的,或者有private或protected的成员,就不能采用上节所述的初始化方法。为了解决这个问题,C++提供了构造函数(constructor)来处理对象的初始化。 构造函数是一种特殊的公有的成员函数。其特殊性为: ① 与其他成员函数不同,它不需要用户来调用,而是在建立对象时自动执行。 ② 构造函数的名字必须与类名同名,以便编译系统能识别它并把它作为构造函数处理。 ③ 构造函数不具有任何类型,没有返回值。它的功能是由用户定义,用户根据初始化的要求设计函数体和函数参数。 构造函数可在类内定义,也可以只在类内对构造函数进行声明而在类外定义构造函数。 【例9.1】 #include iostream using namespace std; class Time {public: Time( ) //定义构造成员函数,函数名与类名相同 {hour=0; //利用构造函数对对象中的数据成员赋初值 minute=0; sec=0; } void set_time( ); //函数声明 void show_time( ); //函数声明 private: int hour; //私有数据成员 int minute; int sec; }; void Time∷set_time( ) //定义成员函数,向数据成员赋值 {cinhour; cinminute; cinsec; } void Time∷show_time( ) //定义成员函数,输出数据成员的值 {couthour″:″minute″:″secendl;} int main( ) { Time t1; //建立对象t1,同时调用构造函数t1.Time( ) t1.set_time( ); //对t1的数据成员赋值 t1.show_time( ); //显示t1的数据成员的值 Time t2; //建立对象t2,同时调用构造函数t2.Time( ) t2.show_time( ); //显示t2的数据成员的值 return 0; } 有关构造函数使用的说明: ① 在类对象进入其作用域时调用构造函数。 ② 构造函数没有返回值,因此也不需要在定义构造函数时声明类型。 ③ 构造函数不需用户调用,也不能被用户调用。 ④ 在构造函数的函数体中不仅可以包含与初始化有关的内容,即对数据成员赋初值,也可以包含其他语句。但一般不提倡,以保持程序的清晰。 ⑤ 如果用户自己没有定义构造函数,则C++系统会自动生成一个构造函数,只是这个构造函数的函数体是空的,也没有参

文档评论(0)

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

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

1亿VIP精品文档

相关文档