首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
若有以下程序: #include<iostream> using namespace std; class Base { public: Base() { x=0; }
若有以下程序: #include<iostream> using namespace std; class Base { public: Base() { x=0; }
admin
2009-02-15
34
问题
若有以下程序:
#include<iostream>
using namespace std;
class Base
{
public:
Base()
{
x=0;
}
int x;
};
class Derived1:virtual public Base
{
public:
Derived1()
{
x=10;
}
};
class Derived2:virtual public Base
{
public:
Derived2()
{
x=20;
}
};
class Derived:public Derived1, protected Derived2
{ };
int main()
{
Derived obj;
cout<<obj.x<<end1;
return 0;
}
该程序运行后的输出结果是【 】。
选项
答案
20
解析
本题考核虚基类。本题中,虽然Derived1和Derived2都是由共同的基类x派生而来的,但由于引入了虚基类,使得它们分别对应基类的不同副本。这时数据成员x只存在一份拷贝,不论在类Derived1修改,还是在类Derived2中修改,都是直接对这惟一拷贝进行操作。本题程序执行语句“Derived obj”时,就会先调用虚基类 Base的构造函数,使得x=0,然后执行类Derived1的构造函数使得x=10,再执行类 Derived2的构造函数,使得x=20。最后输出x的值为20。
转载请注明原文地址:https://kaotiyun.com/show/pzjp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
对关系S和R进行集合运算,结果中既包含S中的所有元组也包含R中的所有元组,这样的集合运算称为()。
有以下程序:#include<stdio.h>main(){inta=1,b=2,c=3,x;x=(a^b)&c;printf("%d\n",x):}程序运行后的输出结果是()。
下列关于线性链表的叙述中,正确的是()。
有以下程序:#include<stdio.h>voidf(int*p,int*q);main(){intm=1,n=2,*r=&m;f(r,&n);printf("%d,%d",m,n);}voidf(int*p,int*q){
给定程序中,函数fun的作用是:不断从终端读入整数,由变量a统计大于0的个数,用变量c来统计小于0的个数,当输入0时结束输入,并通过形参pa和pb把统计的数据传回主函数进行输出。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果
以下叙述中正确的是()。
有以下程序#include<stdio.h>main(){inta,b;for(a=0;a<3;a++){scanf("%d",&b);switch(b){case1:p
关于C语言数据类型叙述中,错误的是()。
以下标识符不是关键字的是()。
软件工程的理论和技术性研究的内容主要包括软件开发技术和()。
随机试题
支气管扩张症多见于
金属热处理的目的是
建筑物门窗缝隙两侧的实际有效热压差与_______因素有关。
()是保税货物通关程序中向海关办理的第一个手续,是保税业务的开始,也是经营者与海关建立承担法律责任和履行监管职责的法律关系的起点。
证券分析师明知客户或投资者的要求或拟委托的.事项违反了法律、法规或证券分析师执业规范的,应予以拒绝,且如实告知客户或投资者并提出改正建议。()
纳税人发生以下情形时,土地增值税以房地产评估价格为依据计算征收的有()。
变构酶的变构效应剂可为
A:Doyoumindmytakingthisseat?B:______
使用VC6打开考生文件夹下的源程序文件modi2.cpp。请完成以下函数:intfactorial(intn):求出n的阶乘,必须使用递归调用。如果n小于1则返回0。注意:不能修改函数的其他部分。#include#in
A、Thestemofthenettle.B、Smallstinginghairsonthenettle’sstem.C、Thesapofthenettle.D、Theslendernettle.B事实细节题原文当
最新回复
(
0
)