对象成员分配

时间:2012-09-12 03:15:07

标签: c++

我理解用'new'初始化的对象是从堆中分配的,但是它们的成员呢?例如,我有A类:

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

然后我分别在下面的代码中定义了对象A

A a;

A *ap = new A();

现在第一个语句将a放在堆栈上,ap将在堆中,但a.aap->a怎么样?他们是否与他们的父对象?

2 个答案:

答案 0 :(得分:1)

是的,根据定义,如果一个对象在堆上,那么它的成员也是如此,对于堆栈也是如此。

一个对象实际上只是一块内存,所以因为该对象包含成员,那就是成员的内存所在的位置。

答案 1 :(得分:0)

成员是对象的一部分,就像struct一样。