6、【
填空题
】 有如下程序:
#include <iostream>
using namespace std;
class Base{
public;
int m,n;
};
class Derived1:
Base{};
class Derived2: public Derived1{
public:
void SetMN(int M, int N){ M=M; n=N; }
int GetSumMN(){ retum (m+n); }
};
int main(){
Derived2 objD;
objD.SetMN(3,4);
cout<<"M+N="<<objD.m+bojD.n<<endl;
retum 0;
}
编译时只有“cout<<"M+N="<<objD.m+bojD.n<<endl;”有语法错误,程序的其他地方没有语法错误,请判断下
划线处使用的关键字是什么。
[每空2分]
答案:["private"]
7、【
填空题
】 有如下程序:
#include <iostream>
using namespace std;
class Base{
int b;
public;
Base(int i) { b=i; }
void disp(){cout<<"Base: b="<<b<<;}
};
class basel; virtual public Base{
public;
Base1(int i): Base(i){}
};
class Base2:virtual public Basc{
public;
Base2(int i):Base(i){}
};
class Derived:public Base2.public Base1{
int d;
public;
Derived(int I,int j):Base1(j), Base2(j),
{ d=i; }
void disp() {cout<<"Derived: d="<<d<<"; }
};
int main(){
Derived objD(1,2); objD.disp();
objD.Basce::disp();
objD.Basce1::disp();
objD.Basce2::disp();
return 0;
}
请将程序补充完整,使程序在运行时输出:
Derived: d=1 Base: b=2 Base: b=2 Base: b=2
[每空2分]