C++习题(第八章)继承与派生 实验例子参考答案_第1页
C++习题(第八章)继承与派生 实验例子参考答案_第2页
C++习题(第八章)继承与派生 实验例子参考答案_第3页
C++习题(第八章)继承与派生 实验例子参考答案_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第八章第八章 类类 习题习题 一 选择题 1 关于类和对象的说法中 不正确的是 D A 属于同一个类的对象 具有相同的数据成员和成员函数 B 类是一种自定义的数据类型 而对象是类的实例 C 类是对象的类 对象是类的对象 没有脱离了类的对象 D 类和对象没有什么不同 都是 C 中用来存储数据的一种工具 2 没有指明访问权限的类成员 其访问权限默认为 B A 公有访问权限 B 私有访问权限 C 保护访问权限 D 不能确定 3 C 的功能是对象进行初始化 A 析构函数 B 数据成员 C 构造函数 D 成员函数 4 关于构造函数的说法 下面不正确的是 A A 如果类中没有定义默认构造函数 则系统会为该类生成一个默认构造函数 B 默认的构造函数没有参数 C 构造函数在对象创建时被自动调用 D 构造函数没有返回值 5 假如 A 是一个类 a1 a2 是它的两个对象 有函数 func A a 下列过程中没有调用拷 贝构造函数的是 D A A a1 a2 B A a1 a2 C func a1 D a1 10 6 对书中的 Date 类 下面对象声明中不正确的是 D A Date d1 B Date d2 d1 C Date d3 2009 D Date d4 7 关于析构函数 下列说法错误的是 C A 析构函数没有参数 B 析构函数没有返回值 C 析构函数可以重载 D 如果没有定义类的析构函数 系统会帮我们创建一个析构函数 8 关于成员函数重载 下列说法正确的是 D A 就是在类中设计多个函数名相同 参数类型和个数也相同的多个函数 B 构造函数不能重载 C 析构函数可以重载 D 函数的重载 要求函数名相同 参数要么类型不相同 要么个数不相同 9 下列说法错误的是 C 这道题超出所学范围了 可以忽略 A 系统生成的默认拷贝构造函数只能实现浅拷贝的功能 B 如果只是对象值复制 采用系统生成的拷贝构造函数就够了 C 如果自己不定义拷贝构造函数 系统会生成一个什么也不做的拷贝构造函数 D 深拷贝使得不同的对象拥有不同的资源 二 填空题 1 类中成员的访问权限有 public private protected 三种 缺省 的访问权限是 private 2 通常 我们通过 公有成员函数 和 友元 来对私有成员变量进行访问和修 改 3 深拷贝和浅拷贝的区别在于 超范围了 4 this 指针是一个隐含于 成员函数中 的特殊指针 它指向 当前被调用的成员函 数操作的对象 这个过程是由系统掌握的 5 如果一些事情希望在对象刚生成时就自动进行 则可将其写在 构造函数 中 如果希望在对象被删除之前的时刻自动进行 则可将其写在 析构函数 中 6 在创建类的对象时 如果这个类中具有若干对象成员 则各对象成员的构造函数及组合 对象的构造函数调用的顺序为 按照对象成员的声明顺序 析构函数的调用执行顺序 为 按照对象成员的声明顺序的反序 三 分析下列程序出错的原因或可能存在的问题 并改正 1 include using namespace std class Count int t public Count Count int i Count Count t 0 Count Count int i t i int main Count c1 10 cout c1 t 类对象不能直接访问私有数据成员 return 0 2 include using namespace std class Person char name public Person char name 类内应写析构函数释放掉申请的空间 Person Person char name name new char 10 if name NULL strcpy name name strcpy this name name int main Person p xiaoming return 0 3 include using namespace std class Date int year int month int day public Date int year int month int day class Person char name Date Birthday public Person char name Person Date Date int year int month int day this year year this month month this day day Person Person char name 应当要对 Birthday 初始化 name new char 10 if name NULL strcpy name name strcpy this name name Person Person delete name int main Person p xiaoming return 0 四 写出下列程序的运行结果 1 include using namespace std class Data private int i double d public void setdata int n i n void setdata double x d x void disp cout i i d d endl void main Data s s setdata 10 s setdata 15 6 s disp i 10 d 15 6 2 include using namespace std class data int y public data int x y x cout constructing data class endl data cout data s destructor called endl class A data d1 public A int x d1 x cout constructing A class endl A cout A s destructor called endl int main

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论