请打开考生文件夹下的解决方案文件proj2,其中在编辑窗口内显示的主程序文件中定义有类xBase和XDerived,以及主函数main。程序文本中位于每行’’//**********found**********下面的一行内有一处或多处下划线标记,请在每个

admin2019-08-23  33

问题 请打开考生文件夹下的解决方案文件proj2,其中在编辑窗口内显示的主程序文件中定义有类xBase和XDerived,以及主函数main。程序文本中位于每行’’//**********found**********下面的一行内有一处或多处下划线标记,请在每个下划线标记处填写合适的内容,并删除掉下划线标记。经修改后运行程序,得到的输出结果为:s=25  
#include
using namespace std;
class XBaLse
{
private:
int mem1,mem2;
public:
//**********found**********
XBase(int m1=0,int=m2:0):meml(m1),____________{}
//**********found**********
virtual int_________________
};
//**********found**********
class XDerived:______________
{
private:
int mem3;
public:
XDerived():XBase(),mem3(0){}
//**********found**********
XDerived(int m1,int m2,int m3):_____________{}
int sum(){return XBase::sum()+mere3;}
};
void main(){
XDerived b(3,4,5);
XBase a(6,7),*pb=&b;
int s=pb一>sum()+a.sum();
cout<<’’s=’’<}

选项

答案(1)mem2(m2) (2)sum(){return mem1+mem2;} (3)public XBase (4)XBase(m1,m2),mem3(m3)

解析 (1)题意要求使用m1和m2初始化数据成员mem1和mem2,同mem1的初始化一样,需要在成员初始化列表中完成mem2的初始化。
(2)sum函数的定义需要返回mem1和mem2之和。
(3)XDerived公有继承XBase类,在继承列表中使用public。
(4)在成员初始化列表中初始化基类成员时,需要调用基类的构造函数,初始化mem3时,可以直接初始化。
转载请注明原文地址:https://kaotiyun.com/show/mD8p777K
0

最新回复(0)