首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include using namespace std; class Base{ int m; public: Base(){ cout
有如下程序: #include using namespace std; class Base{ int m; public: Base(){ cout
admin
2020-07-23
65
问题
有如下程序:
#include
using namespace std;
class Base{
int m;
public:
Base(){ cout<<"B1"; }
Base(int m1): m(m1){ cout<<"B2"; }
};
class Mid1: virtual public Base{ };
class Mid2: virtual public Base{ };
class Derived: public Mid2, public Mid1{
public:
Derived(int n): Base(n){ cout<<"D"; }
};
int main(){
Derived obj(5);
return 0;
}
运行上述程序的输出结果是
选项
A、B1B1D
B、B1B2D
C、B1D
D、B2D
答案
D
解析
虚继承中,无论虚基类出现在继承层次中的任何地方,总是在构造非虚基类之前构造虚基类;程序中首先构造虚基类Base,调用Base的构造函数Base(int m1),输出"B2";然后构造非虚基类,按照Derived的派生列表顺序,首先构造Mid2部分,忽略Mid2构造函数初始化列表中Base的初始化式,再构造Mid1部分,同样忽略Base的初始化式,最后构造Derived部分,执行函数体,输出"D";整个程序结果为:"B2D";答案为D。
转载请注明原文地址:https://www.kaotiyun.com/show/8Lyp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
下列关于重载运算符的说法正确的是:
有如下类定义:classPoint{public:voidSetX(intxx){x=xx;}voidSetY(intyy){y=yy;}
已知一运算符函数没有参数。下列关于该运算符函数的表述中错误的是
在一个程序文件中有如下语句:externintvar;关于这个语句,下列表述中错误的是
已知Bag是一个类,并有函数FBag定义如下:VoidFBag(){Bag*ptr,my,colleage[2],&sister=my;}则在调用函数FBag()后,Bag类的析构函数被调用
若磁盘上已存在某个文本文件,其全路径文件名为d:\ncre\test.txt,下列语句中不能打开该文件的是
已知表达式--a中的"--"是作为成员函数重载的运算符,则与--a等效的运算符函数调用形式为
以下关键字不能用来声明类的访问权限的是()。
下列符号中不属于C++关键字的是()。
随机试题
基金绩效收益率衡量的主要方法有( )。
类比法评估车辆时,修正系数的范围通常是_______。
有利于母乳喂养的因素是
羌活长于桂枝长于
A、少腹逐瘀汤B、生化汤C、清热调血汤D、大黄牡丹皮汤E、大柴胡汤患者产后寒热时作,恶露甚少,色紫黯,小腹疼痛拒按,口干不欲饮。治疗应首选
A、盗汗B、自汗C、头汗D、战汗E、大汗表现为汗出量多,津液大泄的是
关于危险废物,下面说法错误的是()。
大体积承台混凝土施工时,应采取()等方法控制混凝土的水化热温度。
海事局计划举办年终文娱活动,有老同志说,近期工作忙,而且这些蹦蹦跳跳的活动你们年轻人参加就好,我们老人就不参加了。如果你是活动的组织者,请问你会怎么劝说这位老同志?请现场模拟。
下列排序方法中,最坏情况下比较次数最少的是
最新回复
(
0
)