可能重复:
有没有理由在删除之前检查NULL指针?
我知道C++语言保证如果p等于NULL,delete p将不执行任何操作.但不断在不同的项目,文章,例子中我看到它在删除之前检查NULL.通常是格式
if(pObj)
delete pObj;
Run Code Online (Sandbox Code Playgroud)
为什么会这样?一些历史原因?我对如何正确删除对象感到困惑.
我需要有静态多图,但我不想把它作为类字段,'我只需要在一个方法中使用它.我是这样编写的,但是在初始化函数内的其他方法是不是初始化代码只能在第一次调用函数时运行?
static void someClass::someMethod(/**/)
{
static multimap<int, char> err;
if(err.size() == 0)
{//initialize here
err.insert(std::pair<int, char>(1, 'a'));
err.insert(std::pair<int, char>(2, 'b'));
err.insert(std::pair<int, char>(3, 'v'));
err.insert(std::pair<int, char>(4, 'c'));
}
//method logic
}
Run Code Online (Sandbox Code Playgroud)