Class A
{
...
}
以下两种方法实例化一个对象有什么区别呢?
void main(void)
{
A a; // 1
A *pa=new A(); // 2
}
根据我的理解(还不确定):
方法1将对象a分配到main()方法的堆栈帧中,因此该对象不能被删除,因为这种删除没有意义(还不知道原因,有人能解释一下吗?)。
方法2将对象a分配到进程的堆中,并在main()方法的堆栈帧中也分配了一个A*变量pa,因此可以删除对象,并在删除后将pa赋值为null。
我理解正确吗?如果我的理解正确,有人能告诉我为什么不能从方法1的堆栈中删除对象a吗?
非常感谢...
void main(void)
更改为int main()
。 - avakar