继承改错题。两行星号线之间的程序中有几处错误,请改正,得到输出结果,提交星号线之间的程序即可。
时间: 1ms 内存:128M
描述:
***********************************#include <iostream>using namespace std;class A{private:int a,b;public:A(int aa, int bb) {a=aa; b=bb;}void printA(){cout<<"a: "<<a<<" b: "<<b<<endl;}}class B: public A{int c;public:B(int aa, int bb, int cc){a=aa;b=bb;c=cc;}void printB(){cout<<"a: "<<a<<" b: "<<b<<"c: "<<c<<endl;}};//*****************************************int main(){int a1, a2;int b1, b2, b3;cin>>a1>>a2;cin>>b1>>b2>>b3;A a(a1,a2);B b(b1,b2,b3);a=b;a.printA();b.printB();return 0;}
输入:
输入5个整数用于初始化对象。
输出:
调用基类和派生类的输出函数输出结果。
示例输入:
1 2 3 4 5
示例输出:
a: 3 b: 4
a: 3 b: 4
c: 5
提示:
参考答案(内存最优[1500]):
#include <iostream>
using namespace std;
class A
{
private:
int a,b;
public:
A(int aa, int bb) {a=aa; b=bb;}
void printA()
{
cout<<"a: "<<a<<" b: "<<b<<endl;
}
};
class B: public A
{
int c;
public:
B(int aa, int bb, int cc):A(aa,bb){c=cc;}
void printB()
{ printA();
cout<<"c: "<<c<<endl;
}
};
int main()
{
int a1, a2;
int b1, b2, b3;
cin>>a1>>a2;
cin>>b1>>b2>>b3;
A a(a1,a2);
B b(b1,b2,b3);
a=b;
a.printA();
b.printB();
return 0;
}
参考答案(时间最优[0]):
#include <iostream>
using namespace std;
class A
{
private:
int a,b;
public:
A(int aa, int bb) {a=aa; b=bb;}
void printA()
{
cout<<"a: "<<a<<" b: "<<b<<endl;
}
};
class B: public A
{
int c;
public:
B(int aa, int bb, int cc):A(aa,bb){c=cc;}
void printB()
{ printA();
cout<<"c: "<<c<<endl;
}
};
int main()
{
int a1, a2;
int b1, b2, b3;
cin>>a1>>a2;
cin>>b1>>b2>>b3;
A a(a1,a2);
B b(b1,b2,b3);
a=b;
a.printA();
b.printB();
return 0;
}
题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。