📜  继承 - C++ (1)

📅  最后修改于: 2023-12-03 14:56:56.577000             🧑  作者: Mango

继承 - C++

继承是 C++ 面向对象编程中的重要概念之一。通过继承,一个类可以从另一个类继承属性和方法。被继承的类称为父类或基类,继承的类称为子类或派生类。

语法
class 基类名
{
    public:
        // 基类的公有函数和变量
    protected:
        // 基类的保护函数和变量
    private:
        // 基类的私有函数和变量
};

class 派生类名 : 访问权限 基类名
{
    public:
        // 派生类的公有函数和变量
    protected:
        // 派生类的保护函数和变量
    private:
        // 派生类的私有函数和变量
};

通过 : 将访问权限与基类名连接起来,从而形成派生类。

访问权限有 publicprotectedprivate 三种,分别表示派生类对基类成员的访问权限。其中,public 表示公有继承,protected 表示保护继承,private 表示私有继承。默认情况下,继承是私有的。

示例

以下示例展示了派生类如何继承基类的属性和方法。

#include <iostream>

class Shape
{
    protected:
        int width;
        int height;

    public:
        Shape(int w = 0, int h = 0) : width(w), height(h) {}
        virtual int area() { return 0; }
};

class Rectangle : public Shape
{
    public:
        Rectangle(int w = 0, int h = 0) : Shape(w, h) {}
        virtual int area() { return width * height; }
};

int main()
{
    Rectangle rect(5, 10);
    std::cout << "Area of the rectangle is: " << rect.area() << std::endl;

    return 0;
}

输出结果为:

Area of the rectangle is: 50

在上面的示例中,基类 Shape 包含了 widthheight 两个属性,以及 area() 方法(虚方法,它将在派生类中被重写)。派生类 Rectangle 继承了基类 Shape,同时增加了 area() 方法的实现。

main() 函数中实例化了一个 Rectangle 对象,并输出其面积。

小结

继承是一种重要的编程概念,它允许派生类继承基类的属性和方法,并且可以通过重载方法来实现多态。

在 C++ 中,继承语法如下:

class 派生类名 : 访问权限 基类名
{
    public/protected/private:
        // 成员定义
};

其中,访问权限有 publicprotectedprivate 三种。

在实现继承时,关键是定义好基类和派生类之间的关系。合理使用继承能够提高代码的复用性和可维护性。