面试题答案
一键面试纯虚函数的定义
在C++ 中,纯虚函数是一种在基类中声明的虚函数,它没有具体的实现,在声明时通过 = 0
来标识。
纯虚函数的作用
- 定义接口:为派生类提供一个统一的接口,要求派生类必须实现该函数,以确保所有派生类都具有某种特定的行为。
- 抽象基类:包含纯虚函数的类被称为抽象基类,抽象基类不能被实例化,它主要用于为派生类提供一个通用的框架,强制派生类遵循特定的设计规范。
Shape
类的设计
class Shape {
public:
virtual void draw() = 0; // 纯虚函数
};
class Circle : public Shape {
public:
void draw() override {
// 具体的绘制圆形的代码
}
};
class Rectangle : public Shape {
public:
void draw() override {
// 具体的绘制矩形的代码
}
};
体现接口设计思想
- 统一规范:通过在
Shape
类中定义纯虚函数draw
,为所有派生类(如Circle
和Rectangle
)规定了必须实现的接口。这使得所有形状类都具有一致的绘制方法,调用者可以统一地使用draw
方法来绘制不同形状,而无需关心具体的形状类型。 - 多态性:纯虚函数与虚函数机制配合,实现了运行时多态。调用者可以通过指向
Shape
基类的指针或引用调用draw
方法,程序会根据实际对象的类型来调用相应派生类的draw
实现。这体现了接口与实现的分离,提高了代码的可扩展性和可维护性。 - 抽象基类:
Shape
类作为抽象基类,不能被实例化,它的存在仅仅是为了定义接口,这种设计方式强调了接口的抽象性和规范性,使得派生类专注于实现具体的功能,符合接口设计的思想。