要讓C++父類指針指向子類對象,可以使用向上轉型。向上轉型是指將子類的對象賦值給父類的指針或引用,這樣父類的指針就可以指向子類的對象。
示例代碼如下所示:
class Parent {
public:
virtual void print() {
cout << "This is the parent class." << endl;
}
};
class Child : public Parent {
public:
void print() override {
cout << "This is the child class." << endl;
}
};
int main() {
Child childObj;
Parent* parentPtr = &childObj; // 使用父類指針指向子類對象
parentPtr->print(); // 調用的是子類的print函數
return 0;
}
在上述示例中,我們定義了一個父類Parent和一個子類Child,子類繼承自父類。在main函數中,我們創建了一個Child類的對象childObj,然后使用父類指針parentPtr指向childObj對象。接下來,我們通過parentPtr調用print函數,實際上調用的是子類Child的print函數。這就是通過父類指針指向子類對象的方法。