堆分配对象中的堆栈对象在c ++中的位置分配在哪里?

S.F*_*rrd 2 c++

有两个班荫Class AClass B.

class A
{
  int width;
  int height;  

};

class B
{
  A obj;

};
Run Code Online (Sandbox Code Playgroud)

我正在尝试创建一个如下所示的指针

B* myObj = new B();
Run Code Online (Sandbox Code Playgroud)

在这里,myObj在堆中创建.在哪里obj,widthheight创建?

Ser*_*lis 10

myObj在程序集中调用的指向对象的指针是在堆栈上创建的.

对象本身B()是在堆上创建的.width并且height包含在占用的内存中,B()因此也在堆上.

在Ascii Art中:

Stack --- myObj
            |
Heap      [ B -- A [ Width, Height ] ]
Run Code Online (Sandbox Code Playgroud)