析构函数的调用次序与调用构造函数的次序相反.PPT

析构函数的调用次序与调用构造函数的次序相反.PPT

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
12.4.5 CommissionEmployee-BasePlusCommissionEmployee Inheritance Hierarchy Using private Data(在派生类中重定义基类成员) Set the CommissionEmployee data members back to private to enforce good software engineering. use base class CommissionEmployees public member functions to manipulate CommissionEmployees private data. P 12.17 -20 注意: 通过调用基类的public成员函数来访问基类的私有数据成员 当功能相同时,尽量调用成员函数,以避免代码拷贝。 重定义基类成员函数时,一定要使用“::”访问基类成员,否则会引起无限递归,例如:earnings() 注意print()和earnings()的重新定义:调用基类的print()和earnings()函数 符合软件工程要求:使用继承,通过调用成员函数隐藏了数据,保证了数据的一致性。 Topics 12.1 Introduction 12.2 Base Classes and Derived Classes 12.3 Protected Members 12.4 Relationship between Base Classes and Derived Classes 12.5 Constructors and Destructors in Derived Classes 12.6 public, protected and private Inheritance 12.7 Software Engineering with Inheritance 12.5 Constructors and Destructors in Derived Classes 构造顺序 建立派生类的实例对象时、必须调用基类的构造函数来初始化派生类对象的继承成员。 派生类的构造函数既可以隐式调用基类的构造函数,也可以在派生类的构造函数中通过给基类提供初始化值显式地调用。 基类构造函数-派生类构造函数 析构顺序 析构函数的调用顺序和构造函数的顺序相反,因此派生类的析构函数在基类析构函数之前调用。 P 12.22-26 Review 全局对象:在任何函数(含main)执行前,构造;在程序结束时,析构. 局部对象: 自动变量:对象定义时,构造;块结束时,析构. 静态变量:首次定义时,构造;程序结束时,析构. 对象析构顺序恰好与构造顺序相反. 特例1:调用exit函数退出程序执行时,不调用剩余自动对象的析构函数. 特例2:调用abort函数退出程序执行时,不调用任何剩余对象的析构函数. int main() { cout fixed setprecision( 2 ); { // begin new scope CommissionEmployee employee1( Bob, Lewis, 333-33-3333, 5000, .04 ); } // end scope cout endl; BasePlusCommissionEmployee employee2( Lisa, Jones, 555-55-5555, 2000, .06, 800 ); cout endl; BasePlusCommissionEmployee employee3( Mark, Sands, 888-88-8888, 8000, .15, 2000 ); cout endl; return 0; } // end main employee1 employee2 CommissionEmployee BasePlueCommissionEmployee employee3 CommissionEmployee BasePlueCommissionEmployee CommissionEmployee constructor: CommissionEmployee destructor: CommissionEmployee constructor: BasePlueCommissionEmployee constructor: CommissionEmployee constructor: BasePlueCommissionEmployee constructor: Base

文档评论(0)

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

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

1亿VIP精品文档

相关文档