MST

星途 面试题库

面试题:C++ 中抽象类继承与派生的基本规则

在C++中,简述抽象类的继承与派生规则,并且举例说明如何从一个抽象类派生一个具体类,同时要重写抽象类中的纯虚函数。
43.0万 热度难度
编程语言C++

知识考点

AI 面试

面试题答案

一键面试
  1. 抽象类的继承与派生规则
    • 继承
      • 当一个类从抽象类继承时,它必须重写抽象类中的所有纯虚函数,否则该派生类也会成为抽象类。
      • 抽象类的成员(包括纯虚函数)会被派生类继承,派生类可以访问抽象类的非私有成员。
    • 派生
      • 派生类可以添加新的数据成员和成员函数,以满足特定的需求。
      • 派生类通过重写纯虚函数来提供具体的实现,使得派生类成为一个具体类,可以创建对象。
  2. 示例代码
#include <iostream>

// 抽象类
class Shape {
public:
    // 纯虚函数
    virtual double area() const = 0;
};

// 从抽象类Shape派生的具体类Circle
class Circle : public Shape {
private:
    double radius;
public:
    Circle(double r) : radius(r) {}

    // 重写抽象类中的纯虚函数
    double area() const override {
        return 3.14159 * radius * radius;
    }
};

int main() {
    Circle c(5.0);
    std::cout << "Circle area: " << c.area() << std::endl;
    return 0;
}

在上述代码中,Shape 是抽象类,包含纯虚函数 areaCircle 类从 Shape 派生,并通过重写 area 函数成为一个具体类,可以创建 Circle 对象并调用 area 函数计算面积。