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