class A
{
public:
A();
~A();
int X;
};
A::A()
{
X = 5;
int Y = 4;
}
//..... in another file
A * objectOnHeap = new A();
En este caso, dado que "objectOnHeap" está en el montón, ¿X también está en el montón a pesar de que no se inventó específicamente? Y en este caso, Y se asigna en la pila (y, por supuesto, queda fuera del alcance), ¿correcto?¿Las variables miembro de un objeto que está en el montón también están automáticamente en el montón?
Me pregunto si he visto mis cables cruzados cuando trato de imaginar cómo se almacenan los objetos en la memoria.
'objectOnHeap' no está * en el montón. Está en la pila o en el segmento de datos. Su valor es un puntero, que * apunta * a algo en el montón. –
@Rob Kennedy, ¿pueden dar más detalles sobre el segmento de datos? Sin embargo, veo tu punto de que el puntero está en la pila, pero los datos a los que apunta son almacenados en el montón. – BuckFilledPlatypus