C++ 變量本身不能直接實現多態。多態是面向對象編程中的一個重要概念,它允許不同類的對象對同一消息做出不同的響應。在 C++ 中,多態通常是通過虛函數(virtual function)和繼承來實現的。
當一個類包含至少一個虛函數時,它被稱為多態基類。從這個基類派生的子類可以覆蓋(override)這個虛函數,以實現不同的行為。當我們通過基類指針或引用調用這個虛函數時,實際調用的函數取決于指針或引用所指向的對象類型。這就是多態的體現。
例如:
#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;
}
在這個例子中,Base
類有一個虛函數 print()
,Derived
類繼承了 Base
類并覆蓋了 print()
函數。通過基類指針 basePtr
調用 print()
函數時,實際調用的是 Derived
類中的 print()
函數,實現了多態。
總之,C++ 變量不能直接實現多態,但可以通過虛函數和繼承來實現多態。