是的,C++的继承机制可以实现虚函数。虚函数是在基类中声明的,可以在派生类中被重写(override)。当使用基类指针或引用调用虚函数时,会根据指针或引用指向的实际对象类型动态地调用对应的派生类中的虚函数。这就是动态绑定或多态的概念。
以下是一个简单的示例:
#include <iostream>
class Base {
public:
virtual void print() {
std::cout << "Base class print function" << std::endl;
}
};
class Derived : public Base {
public:
void print() override {
std::cout << "Derived class print function" << std::endl;
}
};
int main() {
Base* basePtr = new Derived();
basePtr->print(); // 输出 "Derived class print function"
delete basePtr;
return 0;
}
在这个示例中,Base
类中的 print
函数被声明为虚函数,Derived
类重写了这个函数。在 main
函数中,我们使用基类指针 basePtr
指向派生类对象,并调用 print
函数。尽管指针指向的是基类对象,但实际调用的是派生类中的 print
函数,这就是动态绑定的体现。