我該怎麼做?我想到了複雜類中的一種方法,它將基本對象的每個變量都複製到複雜對象上,但這似乎有點不方便。將基礎類的對象擴展爲複雜類的對象
class Basic
{
//basic stuff
}
class Complex : public Basic
{
//more stuff
}
Basic * basicObject = new Basic();
//now "extending" basicObject and "cast" it to Complex type
//which means copy everything in basicObject to an complexObject
或類似的東西:
Complex * complexObject = new Complex();
complexObject.getEverythingFrom(basicObject);
似乎是太不方便了,因爲每次我改變基本類,我必須得改變這種「複製」的方法。
我不認爲你問的東西有很大的意義。也許更好地陳述你的目標,而不是你決定成爲第一步。 –
你應該多讀一點繼承以及它是如何工作的。 –
你不能這樣做。當你創建一個'Basic'對象時,你不能強制轉換爲派生的'Complex'。此外,每個派生類都將自己的基類變量作爲自己的變量。爲什麼你需要執行這個副本,如果你可以直接訪問所有的基礎變量? –