的其他孩子,我有一個指針的對象從父列表的最佳方式轉換成同一母公司
vector<Parent*> list;
那麼我父母的2個類:Child1和CHILD2添加到列表中。
該代碼遍歷列表的所有實體並調用Execute();
for(int i = 0; i < list.size(); i++)
list[i]->Execute();
Execute()是Parent的一個虛函數,並且在每個子類中以不同的方式實現。我希望在Child1 :: Execute()的函數內部創建一個條件,其中它被列表中的相同位置處的實體Child2取代。
當然我不能這樣做:
void Child1::Execute() {
...
if(condition)
this = new Child2();
}
,但我不能想出一個好的解決方案,做到這一點。最後會有幾百個來自Parent的Other Child類,它們會做相同的事情,但在其他情況下,所以我想要一個好的可擴展解決方案。
感謝
難道你也許發佈您的代碼的全樣本..即使它不編譯。你很難準確理解你在問什麼。你還可能談論派生類而不是子類? – silvergasp
感謝您的回覆。從我的理解和根據[這個wikibook](https://en.wikibooks.org/wiki/C%2B%2B_Programming/Classes/Inheritance),一個孩子班**是一個從另一個班派生出來的班級。 – gunarthon