C++对象定义
请问一下 CPoint ptX; 和 CPoint ptX = new CPoint();两者的区别是什么?
参考答案:CPoint ptX = new CPoint();
----不能这样写,
应该是:CPoint *ptX = new CPoint();
两者的区别是:前者是在栈内存(即函数局部)中分配空间。当函数结束,内存也被释放了,即对象不存在了。
后者在堆内存中分配空间。当函数结束的时候,内存不释放,需要自己使用:
delete ptX来释放空间
请问一下 CPoint ptX; 和 CPoint ptX = new CPoint();两者的区别是什么?
参考答案:CPoint ptX = new CPoint();
----不能这样写,
应该是:CPoint *ptX = new CPoint();
两者的区别是:前者是在栈内存(即函数局部)中分配空间。当函数结束,内存也被释放了,即对象不存在了。
后者在堆内存中分配空间。当函数结束的时候,内存不释放,需要自己使用:
delete ptX来释放空间