當我使一個類與類指針等:編譯器如何爲類分配內存?
class A{
B* p_b1;
B* p_b2;
A(){}
}
我假定編譯器爲每一個實例2個指針至少大小產生空間。我的問題是,如果他們不是指針,而是直線上升狀物體:
class A{
B b1;
B b2;
A(){}
}
將編譯器類的存儲空間內分配空間,B1和B2的?或者它會在堆棧的其他地方聲明實際的B類?
我之所以問這個是因爲我想減少我的代碼中的內存分配,並遊蕩,如果它將使任何任何區別。
什麼ü意味着其他地方在堆棧上?在你的例子中,b1,b2是在堆棧上創建的。如果你想減少內存分配,則使用較少的對象(包括一個對堆上創建) – Nandu
也從來沒有編譯器分配空間。運行時間呢! – Nandu
@Nandu是的,但機器需要爲堆棧中的每個對象分配內存。因此,我不得不問是否會將分配概括爲涵蓋所有內部對象。基本上「共享」堆棧分配。 – sgtHale