首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
若有以下程序: #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
33
问题
若有以下程序: #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>main(){inty=10;while(y--);printf("y=%d\n",y);}程序执行后的输出结果是
在软件开发中,需求分析阶段产生的主要文档是()。
层次型、网状型和关系型数据库划分原则是
若各选项中所用变量已正确定义,函数fun中通过return语句返回一个函数值,以下选项中错误的程序是
设有定义:intk=0;下列选项的4个表达式中与其他3个表达式的值不相同的是()。
已知二叉树后序遍历序列是CDABE,中序遍历序列是CADEB,它的前序遍历序列是()。
计算机软件可分为应用软件、系统软件和支撑软件。下面属于应用软件的是()
有以下程序段:struet{floatweight;charsex;charname[10];}rec,*ptr;ptr=&rec;从键盘读入字符串给结构体变量Fee的name成员,错误的输入语句是()。
以下选项中不属于C语言程序运算符的是()。
随机试题
一位36岁的男性患者,因反复低热,左上腹饱胀感2个月入院,体查发现中度贫血貌,全身浅表淋巴结无肿大,胸骨有压痛,肝肋下3cm,脾肋下8cm。血象见WBC120×109/L,分类可见中幼、晚幼中性粒细胞,嗜酸性粒细胞、嗜碱性粒细胞增多,RBC3.08×10
AMY测定时选用的抗凝剂为
男性患者,23岁,乏力、心悸、气促两周。查体:心尖搏动向左下移位,胸骨左缘第3、4肋间闻及舒张期哈气样杂音,坐位时明显。最可能的诊断是患者女性,20岁,反复关节红肿疼痛4年,活动后心悸气促3天,心尖部闻及舒张期隆隆样杂音,应诊断为
应激时交感-肾上腺髓质系统兴奋所产生的防御反应是
患者,男,40岁。因脑外伤住院,住院后患者出现脑疝征兆,立即输入200m1甘露醇治疗,其目的是()。
水泥混凝土路面施工,混凝土拌合物从出料到浇筑完毕的允许最长时间,根据()确定。
在评价企业的整体业绩时,重点在于企业的()。
简述货币流通规律的主要内容。
我国县级以上人民政府应依据《旅游法》的规定,从实际出发,履行好以下()义务,全面促进旅游业的发展。
中国革命建立最广泛的统一战线不仅是必要的,而且是可能的,这是由
最新回复
(
0
)