5第五章 继承.pptVIP

  1. 1、本文档共30页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
5第五章 继承.ppt

C++面向对象程序设计教程 第5章 继承 习题解答 一、选择题 二、填空题 三、编程题 * 1.有以下程序: class A { public: A() { cout A; } // 构造函数 }; class B: public A { public: B() { cout B; } // 构造函数 }; int main(void) // 主函数main() { B obj; // 定义对象 cout endl; // 换行 return 0; // 返回值0, 返回操作系统 } 执行后的输出结果是 。 A)AB B)BA C)A D)B 解析:根据派生类构造函数的执行顺序,首先执行基类A的构造函数A(),输出结果“A”;再执行派生类B的构造函数B(),输出结果“B”。故最终输出结果是“AB”。 答案:A 2.有以下程序: class A { public: ~A() { cout A; } // 析构函数 }; class B: public A { public: ~B() { cout B; } // 析构函数 }; int main() // 主函数main() { B *p = new B; // 定义指针 delete p; // 释放动态空间 cout endl; // 换行 return 0; // 返回值0, 返回操作系统 } 执行后的输出结果是 。 A)AB B)BA C)A D)B 解析:根据派生类析构函数的执行顺序,首先执行派生类B的析构函数,输出结果“B”;再执行基类的析构函数,输出结果“A”。故最终的输出结果是“BA”。 答案:B 3.有以下程序: class A { public: A() { cout A; } // 构造函数 ~A() { cout ~A; } // 析构函数 }; class B: public A { public: B() { cout B; } // 构造函数 ~B() { cout ~B; } // 析构函数 }; int main() // 主函数main() { B *p = new B; // 定义指针 delete p; // 释放动态空间 cout endl; // 换行 return 0; // 返回值0, 返回操作系统 } 程序的输出结果是 。 A)BA~A~B B)AB~B~A C)BA~B~A D)AB~B~A 解析:根据派生类构造函数的执行顺序,首先执行基类A的构造函数A(),输出结果“A”。接下来执行派生类B的构造函数体:先输出“B”;再根据析构函数的执行顺序,先调用派生类的析构函数,输出“~B”,然后调用基类的析构函数,输出“~A”。 答案:B 4.下列有关继承和派生的叙述中,正确的是 。 A)如果一个派生类私有继承其基类,则该派生类不能访问基类的保护成员 B)派生类的成员函数可以访问基类的所有成员 C)基类对象可以赋值给派生类对象 D)派生类对象可以赋值给基类对象 解析:选项A中,如果一个派生类私有继承其基类,则该基类的保护成员成为派生类的私有成员,可以被派生类所访问。选项B中,派生类的成员函数只能访问到基类的公有成员和保护成员。选项C中,基类对象无法赋值给派生类对象。 答案:D 5.有以下程序: class A { public: A() { cout A; } // 无参构造函数 A(char c) { cout c; } // 带参构造函数 }; class B: public A { public: B(char c) { cout c; } // 带参构造函数 }; int main() // 主函数main() { B obj(B); // 定义对象 cout endl; // 换行 return 0; // 返回值0, 返回操作系统 } 执行这个程序,屏幕上将显示输出 。 A)B B)BA C)AB D)BB 解析:本题考查派生类中构造函数的调用顺序。首先执行基类A的构造函数A(),翰出结果“A”;然后执行派生类B的构造函数B(char c),输出结果“B”。 答案:C 6.下列关于派生类构造函数和析构函数的说法中,错误的是 。 A)派生类的构造函数会隐含调用基

文档评论(0)

zhoubingchina + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档