首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有以下程序: #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
31
问题
有以下程序:
#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<<endl;
return 0;
}
该程序运行后的输出结果是______。
选项
答案
20
解析
本题考核虚基类。本题中,虽然Derived1和Derived2都是由共同的基类 x派生而来的,但由于引入了虚基类,使得它们分别对应基类的不同副本。这时数据成员x只存在一份拷贝,不论在类Derived1中修改,还是在类Derived2中修改,都是直接对这惟一拷贝进行操作。本题程序执行语句“Derived obJ;”时,就会先调用虚基类 Base的构造函数,使得x=0,然后执行类Derived1的构造函数使得x=10,再执行类Derived2的构造函数,使得x=20。最后输出x的值为20。
转载请注明原文地址:https://jikaoti.com/ti/zsL0FFFM
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
以下程序段中的变量已正确定义: for(i=0;i<4;i++,i++) for(k=1;k<3;k++); printf("*"); 程序的运行结果是()。
有以下程序: #include<stdio.h> main() { intk=5; while(--k) printf("%d",k-=3); printf("\n"); } 程序运行后的输出结果是(
在数据库的3级模式中,外模式(用户模式或子模式)有()。
有以下程序: #include<stdio.h> voidf(intb[]) { inti; for(i=2;i<6;i++) b[i]*=2; } main() { inta[10]={1,2,3,4,5,6
有以下程序 #include<stdio.h> main() { inta=1,b=2,c=3; charflag; flag=b>=2&&c<=3; switch(a) { case1:sw
定义部门的关系模式如下: 部门(部门号,部门名,部门成员,部门总经理) 使它不满足第一范式的属性是()。
有二叉树如下图所示: 则前序序列为()。
若有定义:chars1[100]="name",s2[50]="address",s3[80]="person";,要将它们连接成新字符串:"personnameaddress",正确的函数调用语句是()。
数据库中对概念模式内容进行说明的语言是()。
以下说法正确的是()。
随机试题
薄膜浓缩常用方法是
将桁架各杆的刚度EA乘以1/n,则荷载作用下各结点位移为( )。
下列宜用作工程成本控制方法的有()。
( )( )
已知数列{an}和{bn}均为等差数列,且它们的前n项和分别为Sn和Tn,若的最大值.
价值原则和真理原则的区别是()
Writeanessayof160-200wordsbasedonthefollowingpicture.Inyourwriting,youshould1)describethedrawingbriefly,
在一个空的表单中添加一个选项按钮组控件,该控件可能的默认名称是( )。
Whatisthedistancebetweenthepoints(0,5)and(5,0)?
Theterm"print"hasseveralmeanings,soitisimportanttounderstandexactlywhatismeantbytheartisticterminology.Apr
最新回复
(
0
)