面试题答案
一键面试- 抽象类的继承与派生规则:
- 继承:
- 当一个类从抽象类继承时,它必须重写抽象类中的所有纯虚函数,否则该派生类也会成为抽象类。
- 抽象类的成员(包括纯虚函数)会被派生类继承,派生类可以访问抽象类的非私有成员。
- 派生:
- 派生类可以添加新的数据成员和成员函数,以满足特定的需求。
- 派生类通过重写纯虚函数来提供具体的实现,使得派生类成为一个具体类,可以创建对象。
- 继承:
- 示例代码:
#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
是抽象类,包含纯虚函数 area
。Circle
类从 Shape
派生,并通过重写 area
函数成为一个具体类,可以创建 Circle
对象并调用 area
函数计算面积。