class OtherClass
{
...
};
class Test
{
OtherClass otherClass;
};
int main()
{
Test *pTest = new Test;
}
pTest
指向类型的对象Test
。是otherClass
在堆上还是在栈上分配?
class OtherClass
{
...
};
class Test
{
OtherClass otherClass;
};
int main()
{
Test *pTest = new Test;
}
pTest
指向类型的对象Test
。是otherClass
在堆上还是在栈上分配?
Test *pTest = new Test;
在 Freestore(Heap) 上创建一个Test
对象,所有的成员Test
也都在同一个上面。
所以是的。
请注意,从技术上讲,该标准从不使用术语堆或堆栈,但是您可以假设它们,因为几乎所有实现都使用它们。
它在堆上分配。由于pDataMember
是具有类型的数据成员OtherClass
(不是指针!),它是为 class 的对象分配的内存的一部分Test
,因此它将位于Test
对象所在的任何位置。
也许您不应该命名非指针pDataMember
?这很令人困惑。