首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有以下程序 #include<iostream> using namespace std; class Base { private: char c; public: Base(char n):c(n
有以下程序 #include<iostream> using namespace std; class Base { private: char c; public: Base(char n):c(n
admin
2009-02-15
75
问题
有以下程序 #include<iostream> using namespace std; class Base { private: char c; public: Base(char n):c(n){} ~Base() { cout<<c; } }; class Derived:public Base { private: char c; public: Derived(char n):Base(n+1),c(n){} ~Derived() { cout<<c; } }; int main() { Derived obj(’x’); return 0; } 执行后的输出结果是
选项
A、10
B、20
C、30
D、0
答案
2
解析
本题考核虚基类。本题中,虽然Derived1和Derived2都是由共同的基类x派生而来的,但由于引入了虚基类,使得它们分别对应基类的不同副本。这时数据成员x只存在一份拷贝,不论在类Derived1修改,还是在类Derived2中修改,都是直接对这惟一拷贝进行操作。本题程序执行语句“Derived obj”时,就会先调用虚基类 Base的构造函数,使得x=0,然后执行类Derived1的构造函数使得x=10,再执行类 Derived2的构造函数,使得x=20。最后输出x的值为20。
转载请注明原文地址:https://kaotiyun.com/show/D7kp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
有三个关系R、S和T如下:则由关系R和S得到关系T的操作是( )。
若有以下程序#include<stdio.h>charf(charx){returnx*x+’a’;}main(){chara,b=0;for
有以下程序段:#includeinta,b,c;a=10;b=50;c=30;if(a>b)a=b,b=c;c=a;prinff(“a=%db=%dc=%d\n”,a,b,c);程序的输出结
若有定义:charc;intd;,程序运行时输入:c=1d=2<回车>,能把字符1输入给变量c、把整数2输入给变量d的输入语句是()。
对关系S和关系R进行集合运算,结果中既包含关系S中的所有元组也包含关系R中的所有元组,这样的集合运算称为()。
使用VC++2010打开考生文件夹下blank1中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。在此程序中,函数fun的功能是:将形参s所指字符串中的所有数字字符顺序前移,其他字符顺序后移,处理后新字符串的首地址作为函数值返回。例如,
以下叙述中正确的是()。
若变量已正确定义,在if(W)printf("%d\n",k);中,以下不可替代W的是( )。
使用VC++2010打开考生文件夹下modi1中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c。在此程序中,函数fun的功能是:逐个比较p、q所指两个字符串对应位置上的字符,并把ASCII值大或相等的字符依次存放到c所指的数组中,形成一个新
以下关于逻辑运算符两侧运算对象的叙述中正确的是
随机试题
资本主义的发展经历了自由资本主义和垄断资本主义两个阶段,其法律也与此相适应而表现出某种变化。对此,下列哪些说法是正确的?()
作家的体验有哪特性?
患者张某,女性,66岁,头晕、头痛、乏力20年,加重伴恶心、呕吐、烦躁不安1天,查体:血压180/130mmHg,意识模糊。左侧肢体活动受限,心界扩大。社区护士为其进行有关高血压的用药指导,下列不正确的一项是()
口腔检查的目的是检查
主要用于处理重金属离子、难降解的有机物以及色变和异味的方法是()。
注册会计师应当运用职业判断,确定如何应对超出可接受水平的不利影响,以下属于注册会计师应当考虑的应对措施的有()。
教材、教学参考书属于教育基本要素中的()
地铁10号线全线共有28站,如果地铁从一站到下一站平均要用2分钟,在每个站停靠时问为1分钟,那么地铁10号线从起点站出发.到达终点站共用()分钟。
根据网络的覆盖范围划分,覆盖范围最小的网络是()。
有以下程序:main(){chars[]="\n123\\";printf("%d,%d\n",strlen(s),sizeof(s));}执行后输出结果是()。
最新回复
(
0
)