继承改错题。两行星号线之间的程序中有几处错误,请改正,得到输出结果,提交星号线之间的程序即可。

继承改错题。两行星号线之间的程序中有几处错误,请改正,得到输出结果,提交星号线之间的程序即可。

时间: 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;
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注