0

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

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

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

A a;

A *ap = new A();

现在第一个语句a放在堆栈上并将ap在堆中,但是a.aand怎么样ap->a?他们和他们的父对象在一起吗?

4

2 回答 2

1

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

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

于 2012-09-12T03:18:32.017 回答
0

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

于 2012-09-12T03:17:10.767 回答