2012-09-12 39 views
0

我知道用'new'初始化的對象是從堆中分配的,但是他們的成員呢?例如,我有A類:對象成員分配

class A 
{ 
     private: int a; //here "a" should be on stack 
}; 

然後,我有對象下面的代碼分別定義

A a; 

A *ap = new A(); 

現在的第一條語句的地方a堆棧和ap將在堆中,但如何約a.aap->a?他們是否與他們的父母對象?

+0

對象的實例成員是所述對象的存儲的一部分。 – oldrinb

回答

1

是的,根據定義,如果一個對象在堆上,它的成員也是如此,堆棧也是如此。

一個對象實際上只是一塊內存,所以因爲對象包含成員,所以成員的內存將存在。

0

成員是對象的一部分,就像使用struct一樣。