我對C++的OO方面比較陌生,所以請原諒這個問題,我想它是相對直接的;C++對象指針和範圍
我有一些代碼,鬆散這樣
SuperClass* super;
if (useSub1())
{
SubClass1 sub1 (s);
super = &sub1;
}
else if (useSub2())
{
SubClass2 sub2 (s);
super = &sub2;
}
super.someMethod();
應當注意,這裏的一點是,「子」的建設取決於調用someFunction的結果()。 此外,將會有多個if(...){}構造像上面那樣,每個構造都基於一些條件基於不同的SuperClass子類創建不同的Object。
總之,SuperClass有許多子類,我想根據if條件創建適當的對象類型,然後使用'super'對象來操作它們。
這是我的問題,我認爲通過做什麼我有sub1(或sub2的事情)將超出範圍,所以這使我留下一個指向什麼都沒有?
我希望能夠合理地清楚我想要做什麼,我只是不確定如何正確編寫它。任何幫助或建議感激地收到。
感謝預期
是的,它留下了一個糟糕的指針。這將是未定義的行爲。如果你想要的內存超過了它創建的範圍,你將不得不使用新的。 – Ben