- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
c第9章类和对象,第一类对象,python第一类对象,c根据类名创建对象,c类和对象,c判断对象类型,c获取对象类型,c类与对象,c类对象,c创建类对象
第9章 关于类和对象的进一步讨论 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.1 对象的初始化 如果一个类中所有的成员都是公用的,则可以在定义对象时对数据成员进行初始化。如 class Time { public: //声明为公用成员 int hour; int minute; int sec; }; Time t1={14,56,30}; //将t1初始化为14:56:30 注意: 类的数据成员是不能在声明类时初始化的。 如果数据成员是私有的,或者类中有private或protected的成员,就不能在定义对象时对数据成员进行初始化。 9.1.2 构造函数的作用 构造函数是一种特殊的成员函数,在建立对象时自动执行。 构造函数的名字必须与类名同名 构造函数不具有任何类型 无返回值 构造函数的功能由用户定义,用户根据初始化的要求设计函数体和函数参数。 例9.1 在例8.3基础上定义构造成员函数。 #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.show_time( ); Time t2; //建立对象t2,同时调用构造函数 t2.Time( ) t2.show_time( ); //显示t2的数据成员的值 return 0;} 构造函数也可以在类内对构造函数进行声明而在类外定义构造函数。将上例改为: Time( ); //在类内对构造函数进行声明 在类外定义构造函数: Time∷Time( ) // 在类外要加上类名和域限定符“∷” { hour=0; minute=0; sec=0; } 说明: (1) 在类对象进入其作用域时调用构造函数。 (2) 构造函数没有返回值,因此也不需要在定义构造函数时声明类型。 (3) 构造函数不需用户调用,也不能被用户调用。 (4) 在构造函数的函数体中不仅可以对数据成员赋初值,而且可以包含其他语句。 (5) 如果用户自己没有定义构造函数,则C++系统会自动生成一个构造函数,只是这个构造函数的函数体是空的,也没有参数,不执行初始化操作。 9.1.3 带参数的构造函数 构造函数首部的一般格式为: 构造函数名(类型 1 形参1,类型2 形参2,…) 说明: 用户是不能调用构造函数的,因此无法采用常规的调用函数的方法给出实参。实参是在定义对象时给出的。定义对象的一般格式为: 类名 对象名(实参1,实参2,…); 例9.2 有两个长方柱,其长、宽、高分别为: (1)12,20,25;(2)10,14,20。求它们的体积。#include iostream using namespace std; class Box {public: Box(int,int,int); //声明带参数的构造函数 int volume( ); //声明计算体积的函数 private: int height; int width; int length; }; int Box∷volume( ) //定义计算体积的函数 { return(height*width*len
文档评论(0)