C++的继承语法

在面向对象编程中,继承是一种强大的机制,允许一个类(子类)从另一个类(父类)继承属性和方法。C++是一种支持面向对象编程的编程语言,通过其灵活而强大的继承语法,开发者可以构建更加模块化、可维护和可扩展的代码。

1. 基本的继承语法

在C++中,继承通过关键字 class 后面的冒号来实现。下面是一个简单的例子:

#include <iostream>

// 基类(父类)
class Shape {
public:
    void setWidth(int w) {
        width = w;
    }

    void setHeight(int h) {
        height = h;
    }

protected:
    int width;
    int height;
};


// 派生类Rectangle(子类)继承Shape类
class Rectangle : public Shape {
public:
    int getArea() {
        return width * height;
    }
};

int main() {
    Rectangle rect;

    rect.setWidth(5);
    rect.setHeight(10);

    std::cout << "Area: " << rect.getArea() << std::endl;

    return 0;
}

在上述例子中,Rectangle 类公开继承了 Shape 类。Rectangle 类获得了 Shape 类的属性和方法,可以通过 setWidthsetHeight 方法设置宽度和高度,通过 getArea 方法计算面积。

2. 访问修饰符

在继承中,访问修饰符对于派生类中继承的成员的访问权限至关重要。C++ 提供了三种访问修饰符:publicprotectedprivate。它们分别表示公有继承、保护继承和私有继承。

  • 公有继承(public): 派生类中的成员在外部和基类中均可访问。
class Derived : public Base {
    // 公有成员
};
  • 保护继承(protected): 派生类中的成员在外部不可访问,但在基类中可访问。
class Derived : protected Base {
    // 保护成员
};
  • 私有继承(private): 派生类中的成员在外部和基类中均不可访问。
class Derived : private Base {
    // 私有成员
};

3. 多重继承

C++ 支持多重继承,允许一个类继承自多个基类。例如:

class Derived : public Base1, public Base2 {
    // ...
};

4. 虚函数和多态

在继承中,虚函数和多态是面向对象编程中重要的概念。通过在基类中声明虚函数,可以实现运行时多态。例如:

class Shape {
public:
    virtual void draw() {
        std::cout << "Drawing a shape." << std::endl;
    }
};

class Circle : public Shape {
public:
    void draw() override {
        std::cout << "Drawing a circle." << std::endl;
    }
};

int main() {
    Shape* shape = new Circle();
    shape->draw();  // 输出 "Drawing a circle."

    delete shape;
    return 0;
}

上述例子中,Shape 类的 draw 函数被声明为虚函数,派生类 Circle 中重写了这个虚函数。在运行时,通过指向派生类对象的基类指针,实现了多态的效果。

结语

C++中的继承是构建灵活且可扩展代码的强大工具。通过了解和熟练使用继承语法,开发者可以更好地利用面向对象编程的优势,实现代码的重用和组织。在设计类层次结构时,合理运用访问修饰符、多重继承以及虚函数和多态等概念,将有助于构建高效且易于维护的代码结构。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值