- 1、本文档共107页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
c类的讲解剖析
【例4.7】演示对象创建和撤消的对应关系 本例目的是总结一下语法,请注意各函数输出的标志: class complex{ private: double real, image; public: complex(){ //默认的构造函数 real=0.0; image=0.0; coutInitializing 0 0endl;} complex(double r,double i=0.0){ //带参数的构造函数 real=r; image=i; coutInitializingr\tiendl;} complex(complex com); //复制构造函数声明 ~complex(){ //析构函数 cout Destructorendl; } 【例4.7】演示对象创建和撤消的对应关系 void assign(complex com){ real=com.real; //先建立临时对象com image=com.image; } void print(){ coutreal+imageiendl; } }; inline complex::complex(complex com){ //复制的构造函数说明 coutCopycom.real\t‘ com.imageendl; real=com.real; image=com.image; } 【例4.7】演示对象创建和撤消的对应关系 complex fun(complex com){ coutEntering functionendl; global.assign(com); coutExiting functionendl; return global; } complex global; //全局对象首先建立 int main(){ cout Entering main endl; complex com1, com2(5.6, 7.5); complex com3=com1; com3.print(); global.print(); com1=fun(com2); com1.print(); coutExiting mainendl; return 0;} 【例4.7】演示对象创建和撤消的对应关系 运行结果: Initializing 0 0 //全局对象global建立,调默认的构造函数 Entering main //进入入口函数main Initializing 0 0 //用默认的构造函数建立com1 Initializing 5.6 7.5 //用带参数的构造函数建立com2 Copy 0 0 //用复制构造函数建立com3 0+0i //打印com3 0+0i //打印global Copy 5.6 7.5 //调用全局函数fun(),调用复制构造函数建立临时对象com Entering function //进入全局函数fun() Copy 5.6 7.5 //进入global.assign(), //调用复制构造函数建立临时对象新com 【例4.7】演示对象创建和撤消的对应关系 Destructor //退出global.assign(),调用析构函数,清新com Exiting function //将退出fun() Copy 5.6 7.5 //返回对象时调用复制构造函数建立临时对象 Destructor //退出fun(),调用析构函数,清fun()的com Destructor //返回的临时对象赋给com1后析构 5.6 + 7.5i //打印com1 Exit main //将退出入口函数main Destructor //退出入口函数前,调用析构函数,清com3 Destructor //退出入口函数前,调用析构函数,清com2 Destructor //退出入口函数前,调用析构函数,清com1 Destructor //退出入口函数前,调用析构函数,清global 本例运行结果应与程序对比,看看程序运行的细节。
文档评论(0)