一个C++多继承的实例

C++ 中的多继承允许一个类继承自多个基类。以下是一个简单的 C++ 多继承的例子:

#include <iostream>
using namespace std;

// 基类1
class Shape {
public:
    void setWidth(int w) {
        width = w;
    }
    void setHeight(int h) {
        height = h;
    }
    int getWidth() {
        return width;
    }
    int getHeight() {
        return height;
    }
protected:
    int width, height;
};

// 基类2
class Color {
public:
    void setColor(string c) {
        color = c;
    }
    string getColor() {
        return color;
    }
protected:
    string color;
};

// 派生类,继承自 Shape 和 Color
class Rectangle : public Shape, public Color {
public:
    void setArea(int w, int h) {
        setWidth(w);
        setHeight(h);
        area = width * height;
    }
    int getArea() {
        return area;
    }
private:
    int area;
};

int main() {
    // 创建 Rectangle 对象
    Rectangle rect;

    // 调用 Shape 基类的成员函数
    rect.setWidth(10);
    rect.setHeight(5);
    cout << "Width: " << rect.getWidth() << ", Height: " << rect.getHeight() << endl;

    // 调用 Color 基类的成员函数
    rect.setColor("Red");
    cout << "Color: " << rect.getColor() << endl;

    // 调用 Rectangle 自身的成员函数
    rect.setArea(10, 5);
    cout << "Area: " << rect.getArea() << endl;

    return 0;
}

这里定义了两个基类:Shape 和 Color。Shape 类有设置和获取宽度和高度的方法,而 Color 类有设置和获取颜色的方法。然后,定义了一个派生类 Rectangle,它同时继承自 Shape 和 Color。Rectangle 类还添加了一个设置面积和获取面积的方法。

在 main() 函数中,创建了一个 Rectangle 对象 rect,并分别调用了来自 Shape 和 Color 基类的成员函数,以及 Rectangle 类自身的成员函数。这展示了多继承如何允许一个类组合多个基类的特性。

在多继承中,如果多个基类有同名的成员函数或变量,且这些成员在派生类中没有被覆盖(override),那么需要使用作用域解析运算符(::)来明确指定要调用哪个基类的成员。此外,多继承可能会增加命名冲突的可能性,因此在使用时需要特别小心。

  • 10
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值