📜  C plus plus 中的继承示例 - C++ (1)

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

C++中的继承示例

继承是C++中一个重要的概念,它允许一个类(称为子类或派生类)去继承另一个类(称为父类或基类)的属性和方法。这个示例将介绍C++中继承的基本用法和一些示例代码。

基本语法
class Parent {
public:
    // 父类的属性和方法
};

class Child : public Parent {
public:
    // 子类的属性和方法
};

上述示例中,Child类通过关键字public继承了Parent类。这样,Child类将拥有Parent类的所有公有属性和方法。

单继承示例

考虑一个简单的示例,有一个基类Shape表示几何形状,它具有一个公有方法area()用于计算形状的面积。我们可以创建一个派生类Circle用于表示圆形,在派生类中可以添加额外的属性和方法。

class Shape {
public:
    float area() {
        return 0;
    }
};

class Circle : public Shape {
private:
    float radius;

public:
    Circle(float r) {
        radius = r;
    }

    float area() {
        return 3.14 * radius * radius;
    }
};

在上述示例中,Circle类继承了Shape类,它重写了area()方法,计算并返回圆形的面积。通过继承和重写,我们可以更好地复用代码,并根据需求进行扩展。

多继承示例

C++还支持多继承,即一个子类可以同时继承多个父类的属性和方法。考虑以下示例,有两个基类AnimalSwimmer,一个派生类Dolphin

class Animal {
public:
    void eat() {
        // ...
    }
};

class Swimmer {
public:
    void swim() {
        // ...
    }
};

class Dolphin : public Animal, public Swimmer {
public:
    void doTricks() {
        // ...
    }
};

在上述示例中,Dolphin类继承了AnimalSwimmer类,因此它拥有eat()方法和swim()方法。此外,Dolphin类还可以添加新的方法,比如doTricks()。通过多继承,我们可以在一个类中获得多个不同父类的属性和方法。

继承中的访问修饰符

在C++中,继承可以使用三种访问修饰符:publicprotectedprivate。默认情况下,继承关系是私有的。下面是一个示例:

class Parent {
public:
    int publicVar;

protected:
    int protectedVar;

private:
    int privateVar;
};

class Child : public Parent {
public:
    void accessParent() {
        publicVar = 1;        // 正确,可以访问公有属性
        protectedVar = 2;    // 正确,可以访问受保护属性
        privateVar = 3;      // 错误,不能访问私有属性
    }
};

在上述示例中,子类Child可以访问父类Parent的公有和受保护属性,但不能访问私有属性。继承中的访问修饰符决定了外部如何访问继承来的属性和方法。

继承是C++中非常强大的特性之一,通过合理使用继承,我们可以实现代码的复用和扩展。在实际开发中,要注意适度使用继承,避免过度继承导致代码复杂和不可维护。