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?这很令人困惑。