多继承语法

多继承语法注意事项:
父类中出现同名成员,要加作用域区分

#include<iostream>
using namespace std;
class Base1
{
public:
    int m_A;

    Base1()
    {
        m_A = 100;
    }
};

class Base2
{
public:
    int m_A;

    Base2()
    {
        m_A = 200;
    }
};

//多继承语法:class 子类 :继承方式 父类1,继承方式 父类2 ...
class Son1 :public Base1,public Base2
{
public:
    Son1()
    {
        m_C = 300;
        m_D = 400;
    }
    int m_C;
    int m_D;
};

class Son2:public Son1
{
public:
    Son2()
    {
        m_G = 800;
    }
    int m_G;
};

void test01()
{
    Son1 son;
    Son2 son2;

    cout << "size of son: " << sizeof(son) <<endl;

    //当不同父类中出现同名成员,需要 加作用域区分
    cout <<" Base1: m_A : "<<son.Base1::m_A <<endl;
    cout <<"Base2: m_A : "<<son.Base2::m_A <<endl;

    cout << "Son2:" << son2.m_G <<endl;
    cout << "Son2:" << son2.m_D <<endl;
    cout << "Son2:" << son2.Base1::m_A <<endl;
}

int main()
{
    test01();
    return 0;
}

### Python 中类继承的语法 在 Python 中,通过指定父类名称作为新类定义中的基类来创建派生类。基本形式如下: ```python class DerivedClassName(BaseClassName): # 类主体 ``` 对于多继承的情况,则可以在括号内列出多个基类的名字,用逗号分隔。 #### 单继承实例 考虑一个简单的例子,在这里`Cat`是从`Animal`继承而来的子类[^3]。 ```python class Animal: num = 0 def __init__(self): print("父类 Animal") def show(self): print("父类 Animal 成员方法") class Cat(Animal): def __init__(self): print("构建子类 Cat") def run(self): print("子类 Cat 成员方法") cat = Cat() cat.run() # 子类方法 cat.show() # 父类方法 ``` 此代码展示了如何从 `Animal` 创建一个新的名为 `Cat` 的类,并且该类不仅拥有自己的成员函数 `run()` ,还能够访问其父类 `Animal` 的公共成员函数 `show()` 和变量 `num`. #### 多重继承示例 当涉及到多重继承时,Python允许一个类同时具有多个直接祖先。这可以通过简单地将这些祖先列在一个元组里并传递给新的类来进行声明[^1]。 ```python class A: def method(self): print("A method") class B: def method(self): print("B method") class C(A, B): pass c = C() c.method() # 输出:A method ``` 在这个案例中,如果两个或更多的基础类提供了相同名字的方法或属性,默认情况下只会调用第一个被提及的基础类里的那个版本;除非特别指定了要使用的具体路径。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值