20200129-02 C++7 继承再学习 及 函数名重复等相关问题解决办法 rror: non-static member found in multiple base-class

本文探讨了C++中多个基类继承时可能出现的成员名重复问题及其解决方案,包括使用虚继承来解决重复继承基类导致的成员重复问题。文章详细介绍了public、private和protected继承的特性,并提出了解决成员名冲突的策略。
摘要由CSDN通过智能技术生成

一、前言

  1.  多个基类继承
  2.  多个基类继承出现成员名重复解决办法(包含不改动原程序)
  3.  虚继承(子类继承多个基类,多个基类又是同一个基类的派生类):解决基类重复继承产生的问题

二、正文

2.1 多个基类继承

//注意该公式有部分问题,后续会解决
class A {
public:
    int getVal() {
        return 100;
    }
    int aVal {10};
};
 
class B {
public:
    int getVal() {
        return 13;
    }
    int aVal {110};
};
 
class C : public A, public B {
   
};
 
int main() {
    C c;
    std::cout << c.getVal() << "  " << c.aVal << std::endl;
    return 0;
}

继承,也跟普通成员类型一样有三种

public 公有:子类和非子类都可以调用(public 继承,将保留父类中的除 private 类的所有 public 和 protected 成员并且不改变这些成员的原本属性,即 父类 protected 类型,这个成员在子类也是 protected)

private 私有: 除了类本身之外不允许外界调用且不允许继承 (private 继承,所有父类非 private 类成员都变成子类的 private 类成员)(没有任何特殊情况下,应该首选是私有继承)

protecte

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Y_Hungry

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值