关于new 与 delete 的问题
问题比较初级,但我却没有从书上找到答案。
//Class A;
A a = new A; // 这里,a是什么?不是指针,不是引用,是什么?
A *a = new A;
以上有什么区别?
new 操作应该返回的是 void* ,这意味着必须是指针,那么,为什么还可以存在 A a = new A; ?
两者都需要 delete a 吧?如果需要,两者的delete a的动作的背后是相同的吗(释放掉a 指向的对象占用的内存)?
谢谢
//Class A;
A a = new A; // 这里,a是什么?不是指针,不是引用,是什么?
A *a = new A;
以上有什么区别?
new 操作应该返回的是 void* ,这意味着必须是指针,那么,为什么还可以存在 A a = new A; ?
两者都需要 delete a 吧?如果需要,两者的delete a的动作的背后是相同的吗(释放掉a 指向的对象占用的内存)?
谢谢
...全文
相关推荐
C++ 使用new与delete需注意的原则
C++的动态内存管理是通过new和delete两个操作来完成的,即用new来申请空间,用delete来释放空间。在使用new和delete时,注意以下原则。 1.new与delete需一一对应 用new操作申请空间,如果申请成功,必须在以后的某个时刻用delete释放该空间,既不能忘记释放,也不能多次释放。前者会引起内存泄露,后者会引起运行时错误。如下面的程序。 #include <iostream> using namespace std; int main() { int *p; p=new int(3); if(p) { delete p; } delete p; r
C++ new、delete(new[]、delete[])操作符重载需要注意的问题
主要介绍了C++ new、delete(new[]、delete[])操作符重载需要注意的问题,本文同时讲解了兼容默认的 new、delete 的错误处理方式、多态的问题等内容,需要的朋友可以参考下
malloc 与new的区别
C语言提供了malloc和free两个系统函数,完成对堆内存的申请和释放。而C++则提供了两个关键字new和delete;
C语言也能面向对象(二)——new和delete
详见:blog.csdn.net/wormsun
New Delete
个人笔记 个人笔记 个人笔记 个人笔记 个人笔记


