首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
若有以下程序: #include <iostream> using namespace std; class A { protected: int a; public: A() {
若有以下程序: #include <iostream> using namespace std; class A { protected: int a; public: A() {
admin
2010-03-29
35
问题
若有以下程序: #include <iostream> using namespace std; class A { protected: int a; public: A() { a=10; } }; class A1 : public A { public: A1() { a=a+1; } }; class A2 : public A { public: A2 () { a=a+2; } }; class B : public A1,public A2 { public: B(){} void print() { cout<<a<<end1; } }; int main ( ) { B obj; obj.print(); return 0; } 程序运行后的输出结果是( )。
选项
A、产生语法错误
B、11
C、12
D、10
答案
1
解析
本题考核派生类的定义和使用。本程序有语法错误,这是由于类B中的 print函数中的语句“cout<<a<<end1;”要输出成员a的值,从而产生了二义性。分析如下:程序中定义了类A,类A1和类A2都是在类A的基础上以公有继承方式产生的派生类,而类B是在类A1和类A2的基础上经过多重继承方式产生的派生类,所以在类B中成员a有两个拷贝,系统无法区分是从A1继承过来的a,还从A2类继承过来的a。
修改方法有以下两种:
①在被访问的成员加上作用域分辨符“::”。将类B中的print()函数体中语句改为:
cout<<A1::a<<end1;
或
cout<<A2::a<<end1;
但两者的输出结果不同,前者输出11,而后者输出12。
②采用虚基类的方法。就是在定义A1和A2时,在派生方式前加上关键词“virtual”。
转载请注明原文地址:https://kaotiyun.com/show/yXjp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
有以下程序#include<stdio.h>voidmain(){intn=2,k=1;while(1(k>0‖n++));printf(’’%d%d\n’’,k,n);}程序运行后的
有以下程序#include<stdio.h>main(){inty=10;while(y--);printf("y=%d\n",y);}程序执行后的输出结果是
以下选项中合法的实型常量是
软件需求规格说明书的作用不包括()。
若已建立以下链表结构,指针p、s分别指向如图所示结点则不能将s所指结点插入到链表末尾的语句组是
数据库系统的核心是
给定程序中已建立一个带有头结点的单向链表,链表中的各结点按结点数据域中的数据递增有序链接。函数fun的功能是:把形参x的值放入一个新结点并插入到链表中,插入后各结点数据域的值仍保持递增有序。请在程序的下划线处填入正确的内容并把下划线删除,使程序得
一棵二叉树共有25个结点,其中5个是叶子结点,则度为1的结点数为()。
某二叉树的前序序列为ABCDEFG,中序序列为DCBAEFG,则该二叉树的深度(根节点在第1层)为()。
C++本身没有定义I/O操作,但I/0操作包含在C++实现中。C++标准库iostream提供了基本的I/O类。I/O操作分别由类istream和工【】提供。
随机试题
患者男性,43岁,结肠癌术后1年,血CEA水平进行性升高,临床为鉴别吻合口处肿瘤复发抑或术后瘢痕,效果较好的影像学检查方法是
某男,25岁,午后潮热,身热不扬,胸脘痞闷其舌象应是()
对贷审会通过的授信,有权审批人可以否定。()
在经济萧条时,政府可以通过( )来刺激经济增长。
浙菜代表菜有()。
什么是情绪?并简述情绪与认知的关系。
甲以夫妻共有的写字楼作为出资设立个人独资企业。企业设立后,其妻乙购体育彩票中奖100万元,后提出与甲离婚。离婚诉讼期间,甲的独资企业宣告解散,尚欠银行债务120万元。该项债务的清偿责任应如何确定?()
甲、乙合作一项工作需15天才能完成。现甲、乙合作10天后,乙再单独做6天,还剩下这项工作的,则甲单独做这项需要的天数是()。
运行下列程序,若从键盘输入字符“a”,则输出结果是()。charc;c=getchar();if(c>=’a’&&c<=’g’)c=c+4;elseif(c>=’g’&&c<=’z’)c=c-21;
Duringtheexaminationthestudentswererequiredtostayintheirseats,keeptheireyesontheirwork______toanyone.
最新回复
(
0
)