0

我想寫一個類,它可以容納9個變量(物理值)。 5應該在那裏每次,但我想用一個標誌(可選)控制其他4。C++何時會在新對象中分配內存?

我的問題是:如果我有4個變量在我沒有使用的類的私有部門...將爲這些分配內存?如果是的話:我怎樣才能避免它?

我想爲可選變量動態分配內存。

+0

請添加您的代碼。 – AndyG

+0

您可以使用可選變量向數組添加單個指針,您可以在需要時保留'nullptr'或分配。這隻會花費你一個額外的指針。或者你可以創建子類。 – CompuChip

+2

我會說,如果你不得不問這個問題,那麼你不應該擔心避免內存分配。 –

回答

0

對於這4個變量,您需要將成員變量聲明爲指針,這些指針在構造函數中初始化爲NULL。然後你根據自己的需要分配和釋放這些資源,不僅忘記在課堂上進行分配,而且還會分配這些資源。然而,如果你的意圖只是一個記憶增益,你需要根據指針的大小來評估這些變量的大小,而不管它是否有益。通常它只適用於複雜的大數據類型,或者不公開頭文件。在32位平臺中,這4個變量僅需要指針4 * 4 = 16個字節,即使它們未被使用。加上這些指針在使用時指向的內容消耗的內存。