zoukankan      html  css  js  c++  java
  • C++——类的多继承

    多继承概念

    •   一个类有多个直接基类的继承关系称为多继承
    •   多继承声明语法

    class  派生类名 : 访问控制  基类名1访问控制  基类名2 ,  … , 访问控制  基类名n

        {

             数据成员和成员函数声明

        };

    •   类 C 可以根据访问控制同时继承类 A 和类 B 的成员,并添加

         自己的成员

    多继承的派生类构造和访问

    • 多个基类的派生类构造函数可以用初始式调用基类构造函数初始化数据成员
    • 执行顺序与单继承构造函数情况类似。多个直接基类构造函数执行顺序取决于定义派生类时指定的各个继承基类的顺序。
    •  一个派生类对象拥有多个直接或间接基类的成员。不同名成员访问不会出现二义性。如果不同的基类有同名成员,派生类对象访问时应该加以识别
    #include <iostream>
    using namespace std;
    
    class Base1
    {
    public:
        Base1(int b1)
        {
            this->b1 = b1;
        }
        void printB1()
        {
            cout<<"b1:"<<b1<<endl; 
        }
    protected:
    private:
        int  b1;
    };
    
    class Base2
    {
    public:
        Base2(int b2)
        {
            this->b2 = b2;
        }
        void printB2()
        {
            cout<<"b2:"<<b2<<endl; 
        }
    protected:
    private:
        int  b2;
    };
    
    class B : public Base1, public Base2
    {
    public:
        B(int b1, int b2, int c): Base1(b1), Base2(b2)
        {
            this->c = c;
        }
        void printC()
        {
            cout<<"c:"<<c<<endl; 
        }
    protected:
    private:
        int c;
    };
    
    void main()
    {
        B b1(1, 2, 3);
        b1.printC();
        b1.printB1();
        b1.printB2();
        cout<<"hello..."<<endl;
        system("pause");
        return ;
    }
  • 相关阅读:
    c#中this的一种特殊用法(extension method)
    Use a String.Format format and transform its output to its inputs?
    c#项目中遇到的add event 的一个小例子
    抽象类可以定义常量,接口中不可以定义常量
    c# 浅拷贝与深拷贝
    定制Dictionary
    c#中object字节问题
    编译过程知识的小补习
    抽象耦合
    控件集合属性遇到的问题
  • 原文地址:https://www.cnblogs.com/long5683/p/11402134.html
Copyright © 2011-2022 走看看