是的,C++的繼承機(jī)制可以實(shí)現(xiàn)虛函數(shù)。虛函數(shù)是在基類中聲明的,可以在派生類中被重寫(override)。當(dāng)使用基類指針或引用調(diào)用虛函數(shù)時(shí),會(huì)根據(jù)指針或引用指向的實(shí)際對(duì)象類型動(dòng)態(tài)地調(diào)用對(duì)應(yīng)的派生類中的虛函數(shù)。這就是動(dòng)態(tài)綁定或多態(tài)的概念。
以下是一個(gè)簡(jiǎn)單的示例:
#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;
}
在這個(gè)示例中,Base
類中的 print
函數(shù)被聲明為虛函數(shù),Derived
類重寫了這個(gè)函數(shù)。在 main
函數(shù)中,我們使用基類指針 basePtr
指向派生類對(duì)象,并調(diào)用 print
函數(shù)。盡管指針指向的是基類對(duì)象,但實(shí)際調(diào)用的是派生類中的 print
函數(shù),這就是動(dòng)態(tài)綁定的體現(xiàn)。