• Problem B: 还会用继承吗?


    Problem B: 还会用继承吗?

    Time Limit: 1 Sec  Memory Limit: 128 MB
    Submit: 2599  Solved: 1892
    [Submit][Status][Web Board]

    Description

    定义一个Base类,包括1个int类型的属性,以及满足输出格式要求的构造函数、拷贝构造函数和析构函数。

    定义Base类的子类Derived,包括1个int类型的属性, 以及满足输出格式要求的构造函数、拷贝构造函数和析构函数。

    Input

    第1行N>0表示测试用例个数。

    每个测试包括2个int类型的整数。

    Output

    见样例。

    Sample Input

    1
    10 20
    

      

    Sample Output

    Base = 10 is created.
    Base = 10 is copied.
    Base = 10 is created.
    Derived = 20 is created.
    Base = 10 is copied.
    Derived = 20 is copied.
    Derived = 20 is erased.
    Base = 10 is erased.
    Derived = 20 is erased.
    Base = 10 is erased.
    Base = 10 is erased.
    Base = 10 is erased.
    

      

    HINT

     

    Append Code

    append.cc
    int main()
    {
        int cases, data1, data2;
        cin>>cases;
        for (int i = 0; i < cases; i++)
        {
            cin>>data1>>data2;
            Base base1(data1), base2(base1);
    
            Derived derived1(data1, data2), derived2(derived1);
        }
    }
    

      

    #include <iostream>
    using namespace std;
    class Base
    {
    public :
        int num;
        Base(int t):num(t)
        {
            cout<<"Base = "<<num<<" is created."<<endl;
        }
        Base(const Base &p)
        {
            num=p.num;
            cout<<"Base = "<<num<<" is copied."<<endl;
        }
        ~Base()
        {
            cout<<"Base = "<<num<<" is erased."<<endl;
        }
    };
    class Derived:public Base
    {
    public :
        int num2;
        Derived(int a, int b):Base(a), num2(b)
        {
            cout<<"Derived = "<<num2<<" is created."<<endl;
        }
        Derived(const Derived &p):Base(p),num2(p.num2)//子类可以拷贝给基类
        {
            cout<<"Derived = "<<num2<<" is copied."<<endl;
        }
        ~Derived()
        {
            cout<<"Derived = "<<num2<<" is erased."<<endl;
        }
    };
    
    int main()
    {
        int cases, data1, data2;
        cin>>cases;
        for (int i = 0; i < cases; i++)
        {
            cin>>data1>>data2;
            Base base1(data1), base2(base1);
    
            Derived derived1(data1, data2), derived2(derived1);
        }
    }
    

      

     

    作者:7oDo

    仅供参考,请勿抄袭。

    Hang Hang Hang !!!

  • 相关阅读:
    HDU--4548 美素数
    【思维】南阳理工 14 会场安排问题
    【思维】【水】 南阳oj 喷水装置(一)
    【思维】南阳理工91 阶乘之和
    【转】哈夫曼树 九度1172
    Array
    HDU--1702 ACboy needs your help again!
    栈和队列
    3.Compound data types
    4.Object Oriented Programming
  • 原文地址:https://www.cnblogs.com/Jie-Fei/p/9129565.html
Copyright © 2020-2023  润新知