在C++的上下文中(无关紧要):
class Foo{
private:
int x[100];
public:
Foo();
}
我所学到的东西告诉我,如果您像这样创建Foo实例:
Foo bar = new Foo();
然后,将数组x分配到堆上,但是如果您像这样创建Foo的实例,则:
Foo bar;
然后在堆栈上创建它。
我找不到在线资源来确认这一点。
最佳答案
稍微修改一下示例:
class Foo{
private:
int x[100];
int *y;
public:
Foo()
{
y = new int[100];
}
~Foo()
{
delete[] y;
}
}
范例1:
Foo *bar = new Foo();
范例2:
Foo bar;
由于类/结构对齐,实际大小可能会略有不同,具体取决于您的编译器和平台。