欢迎来到天天文库
浏览记录
ID:33416614
大小:62.29 KB
页数:10页
时间:2019-02-25
《第七章答案继承虚基类》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、7.3练习题解答1.什么是继承性?为什么说它是面向对彖程序中的重要机制?答:继承是指一个对象是另一个对象的特例,则称这个对象继承了另一个对象。继承是创建新类的一种手段,通过继承生成的新类中包含了被继承类中的所有成员,并且它还具有自己定义的成员。继承性是面向对象程序设计方法屮两大标志z—,即封装性和继承性。继承性将提高可重用性,这是面向对象程序设计的重要特性。继承性乂是多态性的重要基础。2.C十十中继承分为哪两类?继承方式又分哪3种?答:C十十语言支持两种继承:单继承和多继承。有的面向对象程序设计语言只支持单继承,例如Java语言。C十十语言中继承
2、方式分为3种:公有继承(Public)、私有继承(private)和保护继承(protected)o3.3种继承方式中各有什么特点?不同继承方式中派生类对基类成员的访问有何不同?答:继承方式有3种,它们区别在于不同继承方式使得基类成员在派生类中的访问权限不问。具体讲来,公有继承方式时,基类中的公有和保护成员在派生类中仍是公有和保护成员;私有继承方式时,基类屮的公有成员和保护成员在派生类屮都为私有成员;保护继承方式时,基类中的公有成员和保护成员在派生类中都是保护成员。3种方式中,基B类为A类的子类型,就称它们类型适应。这时,B类对象就是A类对象。可
3、将B类对象直接赋值给A类对象。反之不行。另外,还可用B类对象初始化A类对象的引用,用B类对象的地址值赋给指向A类对象的指针。9.多继承中,在哪些情况下会出现二义性?如何消除二义性?答:多继承中在下列两种情况下可能出现二义性:(1)访问不同基类中的相同成员可能出现二义性。(2)访问共同基类中的成员时可能出现二义性。・消除二义性的方法是适当地选择成员名限定的方法,这时要使用作用域运算符::010.为什么要引入虚基类?带有虚基类的派生类的构造函数有什么特点?答:引入虚基类的目的是为了解公共基类可能造成的二义性。带有虚基类的派生类的构造函数的成员初始值表
4、中含有熄基类的构造函数,并对其虚基类的子对象只初始化一次。7.4作业题解答一、选择填空1.下列对派生类的描述中,()是错的。A.—个派生类可以作为另一个派生类的基类B.派生类至少有一个基类C.派生类的成员除了它自己的成员外,还包含了它的基类的成员D.派生类中继承的基类成员的访问权限到派生类保持不变答:Do2.派生类的对象对它的基类中()是可以访问的。A.公有继承的公有成员B.公有继承的私有成员C.公有继承的保护成员n私有继承的公有成员答:Ao3.对基类和派生类的关系描述中,())是错的。A.派生类是基类的具体化A.派生类是基类的子集B.派生类是基
5、类定义的延续C.派生类是基类的组合答:Bo1.派生类的构造函数的成员初始值表屮,不能包含()。A.基类的构造函数B.派生类中子对象的初始化C.基类的子对象初始化D.派生类中一般数据成员的初始化答:Co2.关于子类型的描述中,()是错的。A.子类型就是指派生类是基类的子类型B.一种类型当它至少提供了另一种类型的行为,则这种类型是另一种类型的子类型C.在公有继承下,派生类是基类的子类型D.子类型关系是不可逆的答:Ao3.关于多继承二义性的描述屮,()是错的。A.一个派生类的两个基类中都有某个同名成员,在派生类中对这个成员的访问可能出现二义性B.解决二
6、义性的最常用的方法是对成员名的限定法C.基类和派生类中同吋出现的同名函数,也存在二义性问题D.—个派生类是从两个基类派生來的,而这两个基类又有一个共同的基类,对该基类成员进行访问时,也可能出现二义性答:Co4.设置虚基类的目的是()。A.简化程序B.消除二义性C.提高运行效率D.减少目标代码答:Bo5.帯有虚基类的多层派生类构造函数的成员初始化列表中都要列出虚基类的构造函数,这样将对虚基类的子对象初始化()0A.与虚基类下面的派生类个数有关B.多次C.二次D.一次答:Do二、判断下列描述的正确性,对者划丁,错者划XVI.C++语言屮,既允许单继承
7、,又允许多继承。X2.派生类是从基类派生出来,它不能再生成新的派生类。X3.派生类的继承方式有两种:公有继承和私有继承。X4.在公有继承中,基类中的公有成员和私有成员在派生类中都是可见的。.V5.在公有继承屮,基类屮只有公有成员对派生类对象是可见的。X6.在私有继承中,基类中只有公有成员对派生类是可见的。V7.在私有继承中,基类中所有成员对派生类的对象都是不可见的。V8.在保护继承中,对于垂直访问同于公有继承,而对于水平访问同于私有继承。丁9.派生类是它的基类的组合。X1().构造函数可以被继承。丁11.析构函数不能被继承。V12.子类型是不可逆
8、的。X13.只要是类M继承了类N,就可以说类M是类N的子类型。V14.如果A类型是B类型的子类型,则A类型必然适应于B类型。V15.多继
此文档下载收益归作者所有