C++ 變量本身不能直接實(shí)現(xiàn)多態(tài)。多態(tài)是面向?qū)ο缶幊讨械囊粋€(gè)重要概念,它允許不同類的對(duì)象對(duì)同一消息做出不同的響應(yīng)。在 C++ 中,多態(tài)通常是通過虛函數(shù)(virtual function)和繼承來實(shí)現(xiàn)的。
當(dāng)一個(gè)類包含至少一個(gè)虛函數(shù)時(shí),它被稱為多態(tài)基類。從這個(gè)基類派生的子類可以覆蓋(override)這個(gè)虛函數(shù),以實(shí)現(xiàn)不同的行為。當(dāng)我們通過基類指針或引用調(diào)用這個(gè)虛函數(shù)時(shí),實(shí)際調(diào)用的函數(shù)取決于指針或引用所指向的對(duì)象類型。這就是多態(tài)的體現(xiàn)。
例如:
#include <iostream>
class Base {
public:
virtual void print() {
std::cout << "Base class print" << std::endl;
}
};
class Derived : public Base {
public:
void print() override {
std::cout << "Derived class print" << std::endl;
}
};
int main() {
Base* basePtr = new Derived();
basePtr->print(); // 輸出 "Derived class print"
delete basePtr;
return 0;
}
在這個(gè)例子中,Base
類有一個(gè)虛函數(shù) print()
,Derived
類繼承了 Base
類并覆蓋了 print()
函數(shù)。通過基類指針 basePtr
調(diào)用 print()
函數(shù)時(shí),實(shí)際調(diào)用的是 Derived
類中的 print()
函數(shù),實(shí)現(xiàn)了多態(tài)。
總之,C++ 變量不能直接實(shí)現(xiàn)多態(tài),但可以通過虛函數(shù)和繼承來實(shí)現(xiàn)多態(tài)。