-seventy-
Welcome to my blog space.

继承与派生

/*
    1.继承的概念:
        A =====> B
        父类    子类
        基类    派生类

    2.继承和派生:
        继承和派生描述的是同一个事情,只是看待事情的角度不一样,说法不一样罢了。
            子类继承父类
            父类派生子类

    3.继承分类
        1.单继承
        2.多继承
*/

继承方式

/*
    单继承和多继承语法:

    class 父类名
    {

    };

    1.单继承

        class 子类名 : 继承权限 父类名
        {

        };

    2.多继承

        class 子类名 : 继承权限1 父类名1,继承权限2 父类名2 ......
        {

        };

    3.继承权限
        1.公有继承 public
        2.私有继承 private
        3.保护继承 protected
*/

父子关系 [Go]

/*
    子类在继承父类的过程中,如果子类的number和父类的number冲突,那么默认会使用子类的number,
    而父类的numbe r想要使用的话需要强调一下,它是来自父类的number
        e.g.
            // 下面是子类的对象obj
            obj.number                    // 默认是子类中的number
            obj.FatherClass::number        // 来自父亲的number
*/

菱形继承

#include <iostream>
using namespace std;

class A
{
public:
    int n;
};

class A_1 : virtual public A    // 虚继承
{
public:
    int a1;
};

class A_2 : virtual public A    // 虚继承
{
public:
    int a2;
};

class AA : public A_1, public A_2
{
public:
    int aa;
};

int main()
{
    AA obj;
    obj.aa;
    obj.a1;
    obj.a2;

    obj.A_1::n;
    obj.A_2::n;

    obj.n;    // 虚继承发挥的作用

    return 0;
}

 

posted on 2023-07-19 21:46  -seventy-  阅读(9)  评论(0)    收藏  举报