- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
A.1答案D分析一个派生类可以作为另一个派生类的基类。无论是单.doc
1
答案:D
分析:一个派生类可以作为另一个派生类的基类。无论是单继承还是多继承,派生类至少有一个基类。派生类的成员除了它自己的成员外,还包含了它的基类成员。派生类中继承的基类成员的访问权限到派生类受继承方式影响的,对于私有继承,基类的public,protected成员在派生类中作为private成员;对于公有继承,基类的public,protected成员在派生类中访问属性不变;对于保护继承,基类的public、protected成员在派生类中作为protected成员。
2
答案:A
分析:公有继承的基类的公有成员在派生类中保持公有访问权限,所以派生类对象可以访问它;公有继承的基类的保护成员在派生类中保持保护访问权限,所以派生类对象不可以访问它;基类的私有成员不能被派生到派生类中,所以派生类对象不可以访问它;保护继承的基类的公有成员在派生类中变成保护的访问权限,所以派生类对象不可以访问它。
?
3
答案:D
分析:出现二义性有两种情况:调用不同基类的相同成员时可能出现二义性;访问共同基类的成员时可能出现二义性。消除二义性的方法是采用作用域运算符。派生类和它的基类中出现同名函数时,不可能出现二义性。
?
4
答案:B
分析:多继承派生类构造函数构造对象时,构造函数的调顺序是:虚基类的构造函数,派生类中子对象类的构造函数, 派生类自己的构造函数。
?
5
答案:B
分析:C++类体系中,构造函数、析构函数和友元函数是不能被派生类继承的.
?
6
答案:A
分析:私有继承时,基类的protected成员在派生类中作为private成员。
?
7
答案:(1)单继承 (2)多继承
分析:派生类可以只从一个基类中派生,也可以从多个基类中派生。从一个基类中派生的继承方式称为单继承。从多个基类中派生的继承方式称为多继承。
?
8
答案:基类
分析:派生类是从基类派生的,派生类包含了它所有基类的除构造函数、析构函数之外的所有成员,同时还拥有它自己的新成员。
?
9
答案:初始化基类数据成员、新增内嵌对象数据及新增一般成员数据所需要的全部参数。
分析:在创建派生类对象时,不仅要给派生类中说明的数据成员初始化,而且还要给基类中说明的数据成员初始化。由于构造函数不能被继承,因此,派生类的构造函数必须通过调用基类的构造函数来初始化基类中的数据成员。所以,在定义派生类的构造函数中,不仅要包含对自己数据成员进行初始化,还要包含调用基类的构造函数对基类中数据成员进行初始化。如果派生类中还有子对象时,还应包含调用对子对象初始化的构造函数。
?
10
答案:(1)派生类 (2)派生类中子对象类 (3)基类
分析:派生类的析构函数的执行次序与构造函数正好相反,先调用派生类的析构函数,再调用派生类中子对象类的析构函数,最后调用基类的析构函数。
?
11
答案:(1)c1、b2、b3、A2、A3 (2)c2 (3)c3
分析:B类有它自己的私有成员b1、保护成员b2和公有成员有b3,另外B类是以保护方式从A类中派生出来的,所以A类保护成员A2和公有成员A3在B类中都变成保护类型的;C类有自己的私有成员c1、保护成员c2和公有成员有c3,C类是以私有方式从B类中派生出来的,所以B类中的b2、b3、A2和A3在C类中都变成私有的访问方式。
?
12:指出并改正下面程序中的错误。
#includeiostream.h
class Point
{ int x,y;
public:
Point(int a=0,int b=0) {x=a; y=b;}
void move(int xoffset,int yoffset) {x+=xoffset; y+=yoffset;}
int getx() {return x;}
int gety() {return y;}
};
class Rectangle:protected Point
{ int length,width;
public:
Rectangle(int x,int y,int l,int w):Point(x,y)
{ length=l;width=w;}
int getlength(){return length;}
int getwidth(){return width;}
};
void main()
{ Rectangle r(0,0,8,4);
r.move(23,56);
coutr.getx(),r.gety(),
r.getlength(),r.getwidth()endl;
}
分析:保护继承方式使基类的public成员在派生类中的访问属性变为protected,所以派生类
文档评论(0)