zoukankan      html  css  js  c++  java
  • 自考新教材-p240_1

    源程序:

    #include<iostream>
    using namespace std;

    class BaseClass1
    {
    protected:
    int v1, v2;
    public:
    BaseClass1();
    BaseClass1(int, int);
    ~BaseClass1();
    void SetValue(int, int);
    void PrintValue();
    };

    BaseClass1::BaseClass1() :v1(0), v2(0)
    {
    cout << "BaseClass1 无参构造函数" << endl;
    }

    BaseClass1::BaseClass1(int m, int n)
    {
    v1 = m;
    v2 = n;
    cout << "BaseClass1 带2个参构造函数" << endl;
    }

    BaseClass1::~BaseClass1()
    {
    cout << "BaseClass1 析构函数" << endl;
    }

    void BaseClass1::SetValue(int m, int n)
    {
    v1 = m;
    v2 = n;
    }

    void BaseClass1::PrintValue()
    {
    cout << "v1=" << v1 << " v2=" << v2;
    }

    class BaseClass2
    {
    protected:
    int v1, v4;
    public:
    BaseClass2();
    BaseClass2(int, int);
    ~BaseClass2();
    void SetValue(int, int);
    void PrintValue();
    };

    BaseClass2::BaseClass2() :v1(1), v4(1)
    {
    cout << "BaseClass2 无参构造函数" << endl;
    }

    BaseClass2::BaseClass2(int m, int n)
    {
    v1 = m;
    v4 = n;
    cout << "BaseClass2 带2个参构造函数" << endl;
    }

    BaseClass2::~BaseClass2()
    {
    cout << "BaseClass2 析构函数" << endl;
    }

    void BaseClass2::SetValue(int m, int n)
    {
    v1 = m;
    v4 = n;
    }

    void BaseClass2::PrintValue()
    {
    cout << "v1=" << v1 << " v4=" << v4;
    }

    class DerivedClass :public BaseClass1, public BaseClass2
    {
    public:
    int v3;
    public:
    DerivedClass();
    DerivedClass(int);
    DerivedClass(int, int, int, int);
    ~DerivedClass();
    void SetValue(int m, int n, int k, int h)
    {
    BaseClass1::SetValue(m, n);
    BaseClass2::SetValue(2 * m, h);
    v3 = k;
    }
    void SetValue(int m, int n, int k)
    {
    BaseClass1::SetValue(m, n);
    BaseClass2::SetValue(2 * m, 2 * n);
    v3 = -1;
    }
    void PrintValue();
    };

    DerivedClass::DerivedClass() :BaseClass1(0, 0), BaseClass2(0, 0), v3(0)
    {
    cout << "DerivedClass 无参构造函数" << endl;
    }

    DerivedClass::DerivedClass(int k)
    {
    v3 = k;
    cout << "DerivedClass 带1个参构造函数" << endl;
    }

    DerivedClass::DerivedClass(int m, int n, int k, int t) :BaseClass1(m, n), BaseClass2(m, t), v3(k)
    {
    cout << "DerivedClass 带4个参构造函数" << endl;
    }

    DerivedClass::~DerivedClass()
    {
    cout << "DerivedClass 析构函数" << endl;
    }

    void DerivedClass::PrintValue()
    {
    BaseClass1::PrintValue();
    cout << " v3=" << v3 << endl;
    BaseClass2::PrintValue();
    cout << endl;
    }

    int main()
    {
    cout << "不带参数对象的创建" << endl;
    DerivedClass derivedCla2;
    derivedCla2.PrintValue();
    system("pause");
    return 0;
    }

    运行结果:

  • 相关阅读:
    软件开发面试
    jQuery插件
    基于消息的软件架构
    线程池的原理及实现(转)
    java实现生产者消费者问题(转)
    并发队列ConcurrentLinkedQueue和阻塞队列LinkedBlockingQueue用法(转)
    JAVA CAS原理深度分析(转)
    菜鸟nginx源码剖析 框架篇(一) 从main函数看nginx启动流程(转)
    Android中利用Handler实现消息的分发机制(三)
    char* 和char[]的差别
  • 原文地址:https://www.cnblogs.com/duanqibo/p/12260984.html
Copyright © 2011-2022 走看看