我应该使用一个c ++类,有或没有“新”?
我应该什么时候使用指针,什么时候不用? 最好的方法是什么? 我必须在程序结束时删除指针的猫对象吗?
例:
cat piki;
piki.miao();
cat *piki2 = new cat();
piki2->miao();
当前范围关闭时, piki
对象将被自动删除。
必须明确删除piki2
。
delete piki2;
尽可能避免使用new
(即在堆上)创建对象,因为您必须自己进行内存管理(或者至少需要使用智能指针)。 如果你在堆栈中分配对象(即cat piki;
),当piki
超出范围时,为cat
对象分配的内存会自动释放。 这不会发生与piki2
,你需要delete piki2;
做delete piki2;
释放内存。
创建或不创建新的ojbect取决于您使用该对象的位置。 如果你在一个函数或块中使用它,你的类的一个对象可以被创建而不需要新的对象,这样一旦你的对象超出了作用域,析构函数就会自动被调用。
如果你希望你的对象在多个方法中使用,或者你想从一个函数中返回对象,那么你需要使用new来创建对象,并且确保你正确地删除它。
链接地址: http://www.djcxy.com/p/82483.html上一篇: what should i use with a c++ class, with or without "new"?
下一篇: Heap corruption C++