首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
若有以下程序: #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
51
问题
若有以下程序: #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全国计算机二级
相关试题推荐
以下各选项中的代码段执行后,变量y的值不为1的是()。
有以下程序 #inelude<stdio.h> main() {inta=0,b=0,c=0,d=0; if(a=1)b=1;c=2; elsed=3; printf("%d,%d,%d,%d\n",a,b,c,d); } 程序输
有如下程序 #include<stdio.h> intsum(intdatA) { staticintinit=1; returndata+=init++; } main() { inti; f
下列选项中,能够满足“只要字符串s1等于字符串s2,则执行ST”要求的是()。
如图所示:带有头结点的单向链表head,其三个数据结点A、B、C的连接关系如下图所示: 结点类型的定义为: structlink { doubledt; structlink*next; }; 若指针p指向A结点,
对象实现了数据和操作(方法)的结合,其实现的机制是()。
下列函数原型声明中错误的是
下列符号中,正确的C++标识符是()。
C++语言本身没有定义I/O操作,使用I/O流的程序需要包括()。
下列程序中声明了两个类AA和BB,其中函数“print”是类AA的成员函数,但是类BB的友元函数。请在①、②和⑧处各填入正确的内容,使程序能正常运行。#include<iostream.h>【】;classAA{
随机试题
关于S-D序列的叙述正确的是
通过增加进口商的资金负担,影响资金的流转,从而起到限制进口作用的措施是()
糖尿病患者检测果糖胺的目的
深部血肿及关节出血主要见于
债务融资一定能够提高上市公司的净资产收益率,具有财务杠杆的作用。()
当个体在群体中处于少数派时,个体会面临强大的群体压力,在这种情况中表现出跟随大众意见和行为的表现,这种现象被称为()。
简述如何培养学习动机。
下列关于爱岗敬业的说法中,你认为不正确的是()。
Walking—likeswimming,bicyclingandrunning—isanaerobicexercise,【C1】________buildsthecapacityforenergyoutputandphysi
DavidCameronhasnoticedthathealthandsafetyregulationsstopschoolstakingchildrenoutonfieldtrips,outdooractivitie
最新回复
(
0
)