在 C++ 中,指針是實現多態的關鍵機制之一。通過基類指針指向派生類對象,可以在運行時動態綁定正確的虛函數,從而實現「一個接口,多種實現」的靈活設計。
#include <Windows.h>
#include <string>
#include <iostream>
using namespace std;
class A {
public:
virtual string GetName() = 0;
};
class B : public A {
public:
virtual string GetName() { return "B"; }
};
class C : public A {
public:
virtual string GetName() { return "C"; }
};
int main() {
B b;
C c;
int nIndex;
cin >> nIndex;
A* p = NULL;
if (nIndex == 0)
p = &b;
else
p = &c;
cout << p->GetName().c_str() << endl;
return 0;
}
GetName(),強制派生類實現。GetName(),返回各自的標識字符串。p 指向不同的派生類對象(&b 或 &c)。p->GetName() 時,編譯器生成虛函數表查找代碼,根據對象實際類型調用相應版本。掌握這一模式,能幫助你編寫更具擴展性和可維護性的 C++ 代碼。