- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
3.1 构造函数 3.1.1 对象的初始化 类的数据成员不是在说明类时初始化的 class Time { int hour=0; int minute=0; int sec=0; }; //错 3.1.1 对象的初始化 类的所有成员都是公用的,可在定义对象时对数据成员进行初始化 class Time {public: int hour; int minute; int sec; } ; Time t1={14, 56, 30}; 构造函数和析构函数 类的特殊的成员函数 系统自动调用执行 名字与类的名字有关 3.1.2 构造函数的作用 3.1.2 构造函数的作用 #include iostream using namespace std; class Time {public: Time();//构造函数 void set_time(); void show_time(); private: int hour; int minute; int sec; }; 3.1.2 构造函数的作用 void Time::Time() { hour=0; minute=0; sec=0; } void Time::set_time() { cinhour; cinminute; cinsec; } void Time::show_time() { couthour:minute:secendl; } 3.1.2 构造函数的作用 int main() { Time t1; //系统自动调用构造函数 t1.show_time(); Time t2; //系统自动调用构造函数 t2.show_time(); return 0; } 注意事项 对象进入其作用域时调用构造函数 函数无返回值 void Time(){}//错误 不能显式调用 t1.Time();//错,不可显示调用 可以包括其它语句 如果用户没定义任何构造函数,系统提供一个默认构造函数 3.1.3 带参数的构造函数 构造函数首部一般格式 构造函数名(类型1 形参1, 类型2 形参2, …) 定义对象的一般格式 类名 对象名(实参1, 实参2, …); 3.1.3 带参数的构造函数 例3.2 有两个长方形,其长、宽、高分别为:(1)12, 25, 30;(2)15, 30, 21。分别求它们的体积。编写一个程序,在类中用带参数的构造函数。 #include iostream using namespace std; class Box {public: Box(int,int,int); //声明带参数的构造函数 int volume(); //声明计算体积的函数 private: int height; int width; int length; }; 3.1.3 带参数的构造函数 Box::Box(int h,int w,int len) //类外定义带参数的构造函数 {height=h; width=w; length=len; } int Box::volume() //类外定义计算体积的函数 {return(height*width*length); } int main() {Box box1(12,25,30);//建立对象box1,并指定其长、宽、高 coutThe volume of box1 is box1.volume()endl; Box box2(15,30,21); //建立对象box2,并指定其长、宽、高 coutThe volume of box2 is box2.volume()endl; return 0; } 3.1.3 带参数的构造函数 带参数的构造函数中的形参,其对应的实参在定义对象时给定 可方便的实现对不同对象的初始化 3.1.4 带参数初始化表对数据成员初始化 不在函数体内,在函数首部对数据初始化 Box:Box(int h, int w, int len):height(t), width(w), length(len){} 3.1.5 重载构造函数 一个类中可以定义多个构造函数,以便对类对象提供不同的初始化方法。 构造函数具有相同的名字,而参数的格式或类型不相同。 参见1.3.4 1.3.4 函数的重载 C++允许在同一作用域中用同一函数名定义多个函数,这些函数的参数个数和参数类型不相同,这些同名的函数用来实现不同的功能。 函数的重载,即一个函数名多用。 1.3.4 函数的重载 #include io
文档评论(0)