在具有虚继承的类体系中,建立派生类对象时先调用间接基类构造函数,再按照派生类定义时各个直接基类继承的顺序调用直接基类的构造函数,最后再对派生类对象自身构造函数。
另外,C++为了保证虚基类构造函数只被建立对象的类执行一次,规定在创建对象的派生类构造函数中只调用虚基类的构造函数和进行(执行)自身的初始化。参数表中的其他调用被忽略,即直接基类的构造函数只调用系统自带的版本,或调用自定义版本但不对虚基类数据成员初始化。
(简答题)
在具有虚继承的类体系中,建立派生类对象时以什么顺序调用构造函数?
正确答案
答案解析
略
相似试题
(单选题)
在具有继承关系的类层次体系中,析构函数执行的顺序是()
(简答题)
在多层次的继承结构中,基类与派生类中存在着虚函数,这时调用虚函数就一定实现动态联编吗?
(判断题)
虚函数有继承性,基类中说明的虚函数只要在它的派生类中与它名字相同的,一定是虚函数。
(判断题)
在保护继承中,对于派生类的访问同于公有继承,而对于派生类的对象的访问同于私有继承。
(判断题)
具有纯虚函数的类是抽象类,它的特点是不可以定义对象。
(判断题)
Java的类是单继承的,所有的类都从Object类派生而来的。()
(单选题)
在事件委托类的继承体系中,最高层次的类是哪项?()
(判断题)
在公有继承中,基类中只有公有成员对派生类对象是可见的。
(简答题)
建立一个基类Building,用来存储一座楼房的层数、房间数以及它的总平方英尺数。建立派生类Housing,继承Building,并存储下面的内容:卧室和浴室的数量,另外,建立派生类Office,继承Building,并存储灭火器和电话的数目。然后,编制应用程序,建立住宅楼对象和办公楼对象,并输出它们的有关数据。