MST

星途 面试题库

面试题:C++中父类虚函数继承规则的基础应用

假设有一个父类`Base`,其中包含一个虚函数`virtual void func() { cout << "Base func" << endl; }`。现在有一个子类`Derived`继承自`Base`,请在`Derived`类中重写`func`函数,输出`"Derived func"`,并编写一个测试程序,展示如何通过父类指针调用子类重写后的`func`函数。
47.8万 热度难度
编程语言C++

知识考点

AI 面试

面试题答案

一键面试
#include <iostream>

class Base {
public:
    virtual void func() {
        std::cout << "Base func" << std::endl;
    }
};

class Derived : public Base {
public:
    void func() override {
        std::cout << "Derived func" << std::endl;
    }
};

int main() {
    Base* basePtr = new Derived();
    basePtr->func();
    delete basePtr;
    return 0;
}
  1. 在上述代码中,首先定义了父类Base,其中包含虚函数func
  2. 然后定义了子类Derived继承自Base,并重写了func函数,在func函数中输出"Derived func" 。这里使用override关键字,以明确表明这是重写父类的虚函数。
  3. main函数中,创建了一个Derived对象,并使用父类指针basePtr指向它,通过这个父类指针调用func函数,由于func是虚函数,会调用到子类重写后的版本,从而输出"Derived func" 。最后记得释放动态分配的内存。