首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include using namespace std; class Base{ int m; public: Base(){ cout
有如下程序: #include using namespace std; class Base{ int m; public: Base(){ cout
admin
2021-06-10
21
问题
有如下程序:
#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(intm1),输出"B2";然后构造非虚基类,按照Derived的派生列表顺序,首先构造Mid2部分,忽略Mid2构造函数初始化列表中Base的初始化式,再构造Mid1部分,同样忽略Base的初始化式,最后构造Derived部分,执行函数体,输出"D";整个程序结果为:"B2D";答案为D。
转载请注明原文地址:https://kaotiyun.com/show/2yfp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
执行下列语句段后,输出字符“*”的个数是()。for(inti=50;1>1;I一=2)cout<<’*’;
下列有关函数重载的叙述中,错误的是()。
如果不使用多态机制,那么通过基类的指针虽然可以指向派生类对象,但是只能访问从基类继承的成员。有如下程序,没有使用多态机制。#includeusingnamespacestd;classBase{inta,b;
数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是()。
Sample是一个类,执行下面语句后,调用Sample类的构造函数的次数是,()。Samplea[2],*P=newSample;
有如下程序:#include<iostream>usingnamespacestd;classBase{public:Base(intx=0){cout<<x;}};class
下列叙述中,错误的是()。
下列数据结构中,属于非线性结构的是( )。
下列有关运算符重载的叙述中,正确的是()。
某二叉树共有12个结点,其中叶子结点只有1个。则该二叉树的深度为(根结点在第1层)()。
随机试题
米非司酮的用法正确的是:
属于玻璃样变的病变有
在工程中如何控制SMA混合料的质量?对SMA混合料的马歇尔试验,最主要的控制指标有哪些?
为了提高设备的本质安全度,在工业锅炉设计上,工程设计人员采用了两个安全阀的设计方案。这种设计理念属于()。
工程施工过程的质量控制中,()是施工阶段质量控制的重点。
关于公共物品的说法,错误的是()。
下列说法正确的有()。
据河南旅游政务网报道:11月21日我省在加拿大多伦多举办了“美丽中国——河南功夫之旅产品发布会”,安大略省旅游文化及体育厅厅长陈国治、国家旅游局驻多伦多办事处主任徐岩、万锦市市议员何胡景、列文治山市议员陈志辉,以及加中旅游协会会长蔡雪麒、北美大旅游批发商G
Wherearethetwospeakerstalking?
Youmayknowthefeeling.It’sthelateafternoon,andyoustillhaven’tleftthehouse.You’vespentthelastseveralhourson
最新回复
(
0
)