首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
设有如下程序: #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
50
问题
设有如下程序: #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全国计算机二级
相关试题推荐
有以下程序#includemain(){inta=1,b=2,c=3,d=0;if(a==1&&b++==2)if(b!=2||c--!=3)printf("%d,%d,%d\n",a,b,c);elseprintf("%d,
以下程序的输出结果是()。voidf(int*q)main(){inti=0;{inta[5]={1,2,3,4,5},i;for(;i<5;i++)(*q)++;}
有如下程序:#include<stdio.h>wildmain(){intx=Ox13:if(x=Ox18)printf(″T″);printf(″F\n″);}程序运行后的结果是()。
有以下程序,程序运行后的输出结果是#definePT3.5:#defineS(x)PT*x*x;main(){inta=1,b=2;printf("%4.1f\n",S(a+b));}
有以下程序voidfun(int*P,int*q){intt;t=*p;*P=*q;*q=t;*q=*p;}main(){inta=0,b=9;fun(&a,&b);printf("%d%d\n",a,b);}程序的输出结果是
若各选项中所用变量已正确定义,函数fun中通过return语句返回一个函数值,下列选项中错误的程序是()。
若有定义语句:intx=10;则表达式x-=x+x的值为()。
有以下程序#includemain(){inta=7;while(a--);printf("%d\n",a);}程序运行后的输出结果是
随机试题
某一土地使用权收益年限为25年,土地的还原利率为10%,预期未来每年的纯收益为10万元,则该土地使用权的评估值为()
A.休克代偿期B.无休克C.重度休克D.中度休克外伤后烦躁不安,出冷汗,尿少,血压100/85mmHg,心率110次/分,称为
下列哪项是注意力缺陷多动症最主要的原因()
男,63岁,反复咳嗽、咳痰、气促1年,心悸、水肿5年,近1周来症状加重入院。查体:呼吸急促、双肺可闻及干湿啰音,P2亢进,三尖瓣区闻及3/6级收缩期杂音,肝右肋下4cm,压缩(+),肝颈回流征阳性,下肢水肿。此时首选的治疗是使用()。
在一定期间及特定的业务量范围内,关于成本与业务量之间的关系,下列说法正确的有()。
假定同一市场上的两个竞争厂商,他们的市场需求曲线分别为Px=1000-5Qx和Py=1600-4Qy,这两家厂商现在的市场销售量分别为100单位x和250单位y。要求:假定y厂商的目标是谋求收益最大化,应该采取怎样的价格策略?
Whatisthewomancomplainingabout?
I____________thepicturefromtheWallinordertocleanit.
A、 B、 C、 B
Asksomeonewhattheyhavedonetohelptheenvironmentrecentlyandtheywillalmostcertainlymentionrecycling.Recyclingin
最新回复
(
0
)