C++继承(改错题)
时间: 1ms 内存:128M
描述:
下面的程序中,存在着两处语法错误。请改正错误,使程序按下面输入输出的规定运行。只提交修改过的begin到end部分的代码。//******************** begin ********************#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;}};//********************* end ********************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个整数
输出:
调用 a.printA();和b.printB();产生输出
示例输入:
1 2
3 4 5
示例输出:
a: 3 b: 4
a: 3 b: 4 c: 5
提示:
参考答案(内存最优[1092]):
#include <stdio.h>
int main()
{
int a,b,c;
scanf("%d%d",&a,&b);
scanf("%d%d%d",&a,&b,&c);
printf("a: %d b: %d\na: %d b: %d c: %d\n",a,b,a,b,c);
return 0;
}
参考答案(时间最优[0]):
#include <iostream>
using namespace std;
class A
{
public:
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()
{
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;
}
题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。
