我正在学习C++的教程,并且遇到了一种情况,我们已经定义了一个二维向量类Vector2D
,然后我们使它成为另一个类中的成员,我们创建它以便存储老鼠。即,在类定义中动态分配内存有什么作用?
private:
Vector2D* m_mousePosition;
现在,当我这样做,并尝试以后更新鼠标的位置,我得到一个错误在Xcode指向具有此m_mousePosition
对象空指针。我无法弄清楚为什么这个指针是空的,但这是一个不同的问题。
我想出了一个解决方案,那就是为这个成员指针显式地分配内存。在这种情况下,我写道:
private:
Vector2D* m_mousePosition = new Vector2D(0, 0);
它的工作原理。但是,当我关闭该程序时,它会随着此更改而挂起,我想知道是否不删除内存正在导致此问题。
所以问题是,这两种不同的方式声明成员指针有什么区别?具体来说,使用new
有什么影响?
,这个问题就有关使用new关键字的一个伟大的回答: [1]:http://stackoverflow.com/questions/655065/when-should-i-use-the-new-keyword -in-c – Logar 2014-08-27 11:29:26