📜  C ++ |继承|问题14(1)

📅  最后修改于: 2023-12-03 15:13:45.268000             🧑  作者: Mango

C++ 继承问题解答

在 C++ 编程中,继承是一种重要的概念,它允许一个类(称为子类或派生类)从另一个类(称为基类或父类)继承属性和行为。继承是面向对象编程的核心特性之一,通过它可以实现代码的复用和层次化设计。

什么是继承?

继承是一种将已有类的特性和行为传递给新的类的机制。通过继承,派生类可以获得基类的成员变量和成员函数,同时还可以增加自己的成员变量和成员函数。

在 C++ 中,继承有三种形式:

  1. 公有继承(public inheritance):派生类可以访问基类的公有成员和保护成员,但不能访问私有成员。
  2. 保护继承(protected inheritance):派生类可以访问基类的保护成员,但不能访问公有成员和私有成员。
  3. 私有继承(private inheritance):派生类不能访问基类的任何成员,包括公有成员、保护成员和私有成员。

继承可以用来构建类的层次结构,其中派生类可以通过继承多个基类来获得多重继承的能力。

继承的语法

要在 C++ 中创建一个派生类,可以使用以下语法:

class 派生类名 : 访问修饰符 基类名
{
    // 派生类的成员和方法
};

访问修饰符可以是 publicprotectedprivate 中的一个。它决定了派生类对基类成员的访问权限。

继承的实例

下面是一个演示继承的示例代码:

class Shape {
protected:
    int width;
    int height;
public:
    void setWidth(int w) {
        width = w;
    }
    void setHeight(int h) {
        height = h;
    }
};

// 继承 Shape 类,创建一个新的派生类 Rectangle
class Rectangle: public Shape {
public:
    int getArea() {
        return width * height;
    }
};

int main() {
    Rectangle rect;
    rect.setWidth(5);
    rect.setHeight(10);
    int area = rect.getArea();
    return 0;
}

上述示例中,我们创建了一个基类 Shape,它有两个保护成员变量 widthheight,以及两个公有成员函数用于设置宽度和高度。

然后我们创建了一个派生类 Rectangle,它使用 public 继承自 Shape。派生类增加了一个公有成员函数 getArea(),用于计算矩形的面积。

main 函数中,我们创建了一个 Rectangle 对象,并通过调用基类的成员函数来设置宽度和高度。然后调用派生类的成员函数来计算矩形的面积。

总结

继承是 C++ 中的一项重要特性,它可以帮助我们构建灵活的类层次结构,并实现代码的复用。通过继承,派生类可以获得基类的成员变量和成员函数,并根据需要扩展和修改。了解继承的语法和使用方法对于成为一名优秀的 C++ 程序员至关重要。