首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include using namespace std; class Base{ int m; public: Base(){ cout
有如下程序: #include using namespace std; class Base{ int m; public: Base(){ cout
admin
2020-05-14
26
问题
有如下程序:
#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://kaotiyun.com/show/mc8p777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
定义在类内部的函数被类默认为【】,在类外部每次调用该函数时,定义的函数代码会在调用函数位置展开。
以下程序的输出结果是#include<iostream.h>voidmain(){inta=0,i;for(i=1;i<5;i++){s
在C++语言中,访问一个对象的成员所用的运算符是【】,访问一个指针所指向的对象的成员所用的运算符是【】。
排序是计算机程序设计中的一种重要操作,常见的排序方法有插入排序、______和选择排序等。
下列叙述中错误的是()。
下面程式程序的执行结果是()。#include<iostream.h>voidmain(){int*p,r;p=newint;*p=20;r=sizeof(*p);cout<<r<<end1;deletep;}
下列不能作为类的成员的是
下列语句中不是死循环的是
下列不属于结构化分析的常用工具的是
随机试题
夔纹出现在()。[云南2018]
速录员的工作既繁忙又紧迫,这就要求速录员要(),统筹安排好自己的工作,及时、完好地完成速录任务。
木瓜酶水解IgG的产物是
患者,女,48岁。半月来大便秘结,面色无华,头晕目眩,心悸,唇舌色淡,脉细。方选
为了准确观察病人的血压,测量时应尽量做到四定
患者,男,慢性支气管炎入院,有10年肺气肿病史。护士应帮助患者采取哪个卧位
美国国家情报局局长上周在一次公开会议上(),美国年度情报总预算为440多亿美元。多年来,美国政府对这个数字一直采取守口如瓶的态度,外人对此不得而知。
Internet服务提供商(ISP)是用户接入Internet的入口点。一般用户计算机接入Internet有两种方式:一种是通过电话网,另一种是通过【】。
Thereis______intoday’snewspaper.
Notfarfromtheschooltherewasagarden,______ownerseatedinitplayingchesswithhislittlegrandsoneveryafternoon.
最新回复
(
0
)