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

admin2020-07-23  38

问题 请打开考生文件夹下的解决方案文件pmj2,其中在编辑窗口内显示的主程序文件中定义有类XBase和XDerived,以及主函数main。程序文本中位于每行"//**********found**********下面的一行内有一处或多处下划线标记,请在每个下划线标记处填写合适的内容,并删除掉下划线标记。经修改后运行程序,得到的输出结果为:s=25
#include<iostream>
using namespace std:
class XBase
{
private:
int mem1,mem2;
public:
//*******found*******
XBase(int m1=0,int m2=0):mem1(m1),_______{}
//*******found*******
virtual int_______
};
//*******found*******
class XDerivred:_______
{
private:
int mem3;
public:
XDerired( ):XBase( ),mem3(0){}
//*******found*******
XDerired(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="<<s<<endl;
}

选项

答案(1)ment2(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)XDerired公有继承xBase类,在继承列表中使用public。
(4)在成员初始化列表中初始化基类成员时,需要调用基类的构造函数,初始化mem3时,可以直接初始化。
转载请注明原文地址:https://jikaoti.com/ti/kml0FFFM
0

随机试题
最新回复(0)