Jochen Arndt
В выделенном блоке памяти хранятся только нестатические переменные-члены. В вашем примере память хранит только то, что x
член и имеет поэтому по крайней мере размер int
.
Вы можете проверить это, распечатав адреса:
class A
{
public:
A() { x = 0; }
int x;
};
int main()
{
A *a = new A();
printf("Size of A = %lu\n", sizeof(*a));
printf("Address of a = %p\n", a);
printf("Address of a->x = %p\n", &a->x);
return 0;
}
что может напечатать
Size of A = 4
Address of a = 0x602010
Address of a->x = 0x602010
Обратите внимание также на правильный синтаксис, используемый в моем примере (определение класса должно заканчиваться точкой с запятой и
a
это указатель).