我是编程的新手.
我想知道发布和删除功能.
当我用new分配内存时,我应该用delete来终止它.
但是当我应该使用释放?
释放和删除有什么区别......?
如果您正在寻找定义,您会发现
#define SAFE_RELEASE(p) { if ( (p) ) { (p)->Release(); (p) = 0; } }
#define SAFE_DELETE(a) if( (a) != NULL ) delete (a); (a) = NULL;
SAFE_DELETE应该用于分配new的内存
应该为com对象调用SAFE_RELEASE(比如directx对象),并且"引擎盖下"是这样的事情
if (--ref_cnt==0)
{
   delete this;
}
如果没有对它的引用,它会递减引用计数器并释放该对象.
c++ 没有发布,也许你在一个涉及 COM+ 的教程中看到过?喜欢 DirectX?
当然, SAFE_RELEASE并且SAFE_DELETE实际上不是 c++ 的一部分,很可能是在某些头文件中定义的宏。
无论如何,这是规则:
delete[] 你什么 new[]delete 你什么 newfree()你什么malloc()/ calloc()/realloc()