首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
设有如下程序: #include <iostream> using namespace std; class A { public: int i; display() {
设有如下程序: #include <iostream> using namespace std; class A { public: int i; display() {
admin
2010-03-29
85
问题
设有如下程序: #include <iostream> using namespace std; class A { public: int i; display() { cout<<"class A\n"; } }; class B { public: int i; display() { cout<<"class B\n"; } }; class C : public A, public B { int j; public: int i; show ( ) { j = i * i; display(); } }; int main() { C demo; demo.show(); return O; } 则主程序运行时将( )。
选项
A、因为变量i的重复定义而报错
B、因为对象demo间接调用display()函数时产生二义性而报错
C、因为类定义的语法错误而不能运行
D、没有语法错误,能够正常输出结果
答案
2
解析
本题主要考察C++中多继承的工作方式和二义性的解决办法。在C++中,允许一个派生类从多个基类派生,这种继承方式称为多继承。多继承的定义格式如下:
class<派生类名>:<继承方式><基类名1>,<继承方式2><基类名2>,…
{<派生类类体>};
但是,如果一个派生类的两个或多个基类中有某个同名成员,在派生类中对这个成员的访问就可能出现二义性;同时,如果一个派生类是由两个或多个基类派生出来的,而这几个基类又有一个共同的基类,对该基类进行访问时,也可能会出现二义性。本题程序中,类C是由类A和类B多继承得到的派生类,但其自身函数show()中调用了display()函数,而这个函数是同时出现在类C的两个基类中的,因此程序会出现二义性,编译器将无法确定调用哪一个display()函数来执行操作,因此报错。
解决二义性的通常办法是通过作用域运算符“::”进行限定。
转载请注明原文地址:https://kaotiyun.com/show/qTjp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
以下程序的输出结果是()。#include#defineSUB(A)(A)-(A)main(){inta=2,b=3,c=5,d;d=SUB(a+b)*c;printf(’’%d\n’’,d);}
有以下程序:#include<stdio.h>main(){inti=0,a=0;while(i<20){for(;;){if((i%5)==0)break;elsei-
若有以下程序structstu{char*name,gender;intscore;};main(){structstua={NULL,’m’,290},b;a.name=(char*)malloc(10);strcpy(a.name,"Z
若要求定义具有10个int型元素的一维数组a,则以下定义语句中错误的是
若各选项中所用变量已正确定义,函数fun中通过return语句返回一个函数值,下列选项中错误的程序是()。
下列描述中,不符合良好程序设计风格要求的是
有以下程序:#includeintf(intn);main(){inta=3,s;s=f(a);s=s+f(a);printf("%d\n",s);}intf(intn){staticinta=1;n+=a++;returnn;}程
有以下程序#includeintd=1;voidfun(intp){intd=5;d+=p++;printf("%d",d);}main(){inta=3;fun(a);d+=a++;printf("%d\n",d);}程序
随机试题
以下检查最可能出现异常的是预计可能的疾病是
哪一种疾病最适合应用肾上腺皮质激素
患者,男,32岁。发热、咳嗽、咳痰5天伴咯血1天。5天前着凉后出现发热,体温波动在37.5~38.2℃,伴咳嗽、咳黄痰。今日晨起咯鲜血2口,约30ml,急诊来院。查体:体温38.0℃,左下肺背部闻及吸气中期中水泡音,响亮,无干啰音。心率98次/分,律齐,各
交通行业标准《公路桥梁板式橡胶支座》规定:盆式橡胶支座设计竖向转动角度不应小于()。
从生产关系来说,经过多年的改革,为实行市场经济创造的必要条件不包括()。
关于排他性条款,以下表述正确的是()。
甲公司是一家主要经营电子科技产品的公司,其公司章程规定:公司向其他企业投资必须经过公司董事会的决议,且单项投资限额不得超过500万元。现该公司欲向乙公司投资,根据公司法律制度的规定,下列表述正确的是()。
Predictionsofmanyrobotsinindustryhaveyetcometrue.Fortenyearsormore,manufacturersofbigrobotshaveexplainedh
Sincetheworldawoke,onAug.31,1997,tothenewsthatPrincessDianahaddiedat36,afterapaparazzi-fueledcarcrashinP
Whatweknowofprenataldevelopmentmakesallthisattemptmadebyamothertomoldthecharacterofherunbornchildbystudyi
最新回复
(
0
)