MST

星途 面试题库

面试题:C++ 类单继承中代码复用之虚函数与函数重写

在C++ 单继承体系下,定义一个基类`Shape`,包含一个虚函数`draw`用于绘制图形。再定义一个派生类`Circle`继承自`Shape`,重写`draw`函数以实现圆形的绘制逻辑。请写出完整代码,并解释虚函数和函数重写在这种代码复用策略中的作用。
49.2万 热度难度
编程语言C++

知识考点

AI 面试

面试题答案

一键面试
#include <iostream>

// 基类Shape
class Shape {
public:
    // 虚函数draw
    virtual void draw() const {
        std::cout << "Drawing a shape." << std::endl;
    }
};

// 派生类Circle继承自Shape
class Circle : public Shape {
public:
    // 重写draw函数
    void draw() const override {
        std::cout << "Drawing a circle." << std::endl;
    }
};

虚函数的作用:

  • 在基类中定义虚函数,为派生类提供一个统一的接口。使得通过基类指针或引用调用函数时,能够根据对象的实际类型来决定调用哪个函数版本,实现多态性。

函数重写的作用:

  • 派生类通过重写基类的虚函数,实现适合自身的特定行为。在这个例子中,Circle类重写draw函数,实现了圆形绘制的具体逻辑,既复用了基类的接口,又有自己独特的实现,增强了代码的灵活性和可扩展性。