首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
若有以下程序: #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
32
问题
若有以下程序: #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://jikaoti.com/ti/lKW0FFFM
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
if语句的基本形式是:if(表达式)语句,以下关于"表达式"值的叙述中正确的是
在面向对象方法中,不属于“对象”基本特点的是
下面属于良好程序设计风格的是()。
对软件设计中应遵循的准则描述正确的是()。
以下叙述中错误的是
使用VC++2010打开考生文件夹下blank1中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。在此程序中,函数fun的功能是:将形参s所指字符串中下标为奇数的字符按ASCII码大小递增排序,并将排序后下标为奇数的字符取出,存入形参p
某二叉树共有530个结点,其中度为2的结点有250个,则度为1的结点数为()。
若某二叉树中的所有结点值均大于其左子树上的所有结点值,且小于右子树上的所有结点值,则该二叉树遍历序列中有序的是
交换两个变量的值,不允许用临时变量,应该使用下列()位运算符。
随机试题
转移定价过程中,当跨国公司要把产品销往高关税国家的分公司时,应该()
A.0.5岁为一个年龄组B.1岁为一个年龄组C.1.5岁为一个年龄组D.5岁为一个年龄组E.15岁为一个年龄组简略寿命表是
为保证检修动火作业和进设备内作业安全,在检修范围内的所有设备和管线中的易燃、易爆、有毒有害气体应进行置换。下列关于置换作业安全注意事项中,正确的是()。
某外国投资者把从某中外合资企业中分得的利润600万元投资于该企业,增加注册资本,其适用的再投资退税公式为( )。
票据贴现的期限最长不得超过()个月。
唐代谏官隶属门下省,职责是谏诤皇帝的过失。到宋代,制度改革将谏官从门下省独立出来,职责变为纠正宰相过错。下列改革措施的用意与此相同的是()。
毛泽东同志总结中国近代历次运动失败时曾说:“没有农民办不成大事,光有农民办不好大事。”下列事件属于“光有农民办不好大事”的是()。
解决我国民族问题的基本政策是()
Beingfatisbadforyou.【B1】______that,almosteveryoneagrees.Itisjustpossible,【B2】______,thatalmosteveryoneiswrong.
所有嵌入式系统都是由硬件和软件两部分组成的,硬件部分的主体是【41】和存储器:它们通过【42】接口(设备)与外部世界联系。
最新回复
(
0
)