首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
若有以下程序: #include <iostream> using namespace std; class Base { public: Base ( ) { x=0;
若有以下程序: #include <iostream> using namespace std; class Base { public: Base ( ) { x=0;
admin
2013-02-27
21
问题
若有以下程序: #include <iostream> using namespace std; class Base { public: Base ( ) { x=0; } int x; }; class Derivedl : virtual public Base { public: Derivedl () { x=10; } }; class Derived2 : virtual public Base { public: Derived2 () { x=20; } }; class Derived : public Derivedl,protected Derived2{ }; int main ( ) { Derived obj; cout<<obj .x<<end1; return 0; } 该程序运行后的输出结果是 ( )。
选项
A、20
B、30
C、10
D、0
答案
1
解析
本题中,虽然Derivedl和Derived2都是由共同的基类x派生而来的,但由于引入了虚基类,使得它们分别对应基类的不同副本。这时数据成员x只存在一份拷贝,不论在类Derived1修改,还是在类Derived2中修改,都是直接对这惟一拷贝进行操作。本题程序执行语句“Derived obj”时,就会先调用虚基类Base的构造函数,使得x=0,然后执行类Derived1的构造函数,使得x=10,再执行类Derived2的构造函数,使得x=20。最后输出x的值为20。
转载请注明原文地址:https://kaotiyun.com/show/oKVp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
有以下程序: #include<stdio.h> #definePT3.5; #defineS(x)PT*x*x; main() {inta=1,b=2; printf("%4.1f\n",S(a+b)); } 程序的
若有定义:charc="hello!";,则以下说法正确的是()。
有以下程序段 main() {intx[M][N]; … Arrlet(x); … } 则作为函数Arrlet的形参,以下表示形式非法的是()。
设有定义:doublea[10],*s=a;,以下能够代表数组元素a[3]的是()。
某二叉树的中序序列为CBADE,后序序列为CBEDA,则前序序列为()。
在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是
重载的流运算符函数应该被定义为类的【】函数。
C++语言本身没有定义I/O操作,使用I/O流的程序需要包括()。
在深度为3的满二叉树中,叶子结点的个数为()。
下列标识符中合法的是()。
随机试题
以下不符合麻痹性肠梗阻的临床特点的是
根据表14-3给出的条件,M公司股票的短期(5天)相对强弱指标RSI值为( )。表14-3M公司股票连续6天的收盘价(单位:元)
投资者进行金融衍生工具交易时,要想获得交易的成功,必须能较准确地预测()等因素的未来变化趋势。Ⅰ.利率Ⅱ.汇率Ⅲ.股价Ⅳ.凸度
预付款项不多的企业,可以不设置“预付账款”科目,而将预付的款项通过“预收账款”科目核算。()
企业使命包括哪些基本因素?
KarlVonLinne(orLinnaeus,asheiswidelyknown)wasaSwedishbiologistwhodevisedthesystemofLatinisedscientificnames
关于菜单设计,下列叙述中错误的是()。
Access数据库具有很多特点,下列叙述中,是Access特点的是()。
一个字长为6位的无符号二进制数能表示的十进制数值范围是_______。
下列不属衍生金融产品的是()。
最新回复
(
0
)