- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第九章 类和对象进一步讨论 第九章 类和对象进一步讨论 9.1 构造函数 9.2 析构函数 9.3 调用构造函数和析构函数的顺序 9.4 对象数组 9.5 对象指针 9.6 共用数据的保护 9.7 对象的动态建立和释放 9.8 对象的赋值和复制 9.9 静态成员 9.10 友元 9.11 类模板 9.1 构造函数 什么是“构造函数” “构造函数”是一个成员函数 “构造函数”在创建对象时自动执行 “构造函数”可以用来对对象进行初始化 构造函数的特点 名字必须与类名相同 不具有任何类型,不返回任何值 功能和参数同普通函数,由用户定义 9.1 构造函数 例9.1 class Time {public: Time( ) //定义构造成员函数,函数名与类名相同 {hour=0; //利用构造函数对对象中的数据成员赋初值 minute=0; sec=0; } void set_time( ); //函数声明 void show_time( ); //函数声明 private: int hour; //私有数据成员 int minute; int sec; }; 9.1 构造函数 也可以在类外实现构造函数 class Time {public: Time( ) ; //声明构造函数 void set_time( ); //成员函数声明 void show_time( ); //成员函数声明 private: int hour; //私有数据成员 int minute; int sec; }; Time::Time( ) //定义构造函数 {hour=0; //利用构造函数对对象中的数据成员赋初值 minute=0; sec=0; } 9.1 构造函数 构造函数说明 构造函数在创建对象时被调用 构造函数没有返回值,不需要(也不能)在定义时声明类型 构造函数不需要(也不能)被用户调用 构造函数仅在创建对象时执行一次 构造函数一定要声明为public 构造函数体可以包含任何合法语句,但为了使代码清晰一般只处理初始化相关的工作 如果用户没有定义构造函数,系统会自动创建一个空的构造函数 9.1 构造函数 带参数的构造函数 格式:构造函数名(类型1 形参1,类型2 形参2,……) 实参格式:类名 对象名(实参1,实参2,……); 带参构造函数可以实现对不同对象初始化不同数据 9.1 构造函数 例9.2 求长方体的体积 class Box {public: Box(int,int,int); //声明带参数的构造函数 int volume( ); //声明计算体积的函数 private: int height; int width; int length; }; Box∷Box(int h,int w,int len) //在类外定义带参数的构造函数 {height=h; width=w; length=len; } 9.1 构造函数 用参数初始化表对数据成员初始化 参数初始化表是另一种初始化数据成员的方法 它不是在函数体内对数据成员初始化,而是在函数首部实现 例:Box∷Box(int h,int w,int len): height(h),width(w),length(len){ } 适用于数据成员较多时,简单,优美 9.1 构造函数 构造函数的重载 一个类中可以定义多个构造函数 便于对类对象提供不同的初始化的方法,供用户选用 这些构造函数同名,只有参数不同 因此它们符合函数重载的定义 9.1 构造函数 例9.3 class Box {public: Box( ); //声明一个无参的构造函数 Box(int h,int w,int len):height(h),width(w),length(len){ } //声明一个有参的构造函数,用参数的初始化表对数据成员初始化 int volume( ); private: int height; int width; int length; }; Box::Box( )
原创力文档


文档评论(0)