Dav*_*d S 1 c++ delete-operator
假设我有以下课程:
foo{
~foo();
private:
char *bar;
};
Run Code Online (Sandbox Code Playgroud)
在某些条件下,bar会创建一个新的char数组,那么处理删除它的正确方法是什么?一个简单的布尔会做或者会被认为是不好的做法吗?
如果bar是nullptr,那么你可以安全地调用delete:
bar = nullptr;
delete bar;
Run Code Online (Sandbox Code Playgroud)
所以你不需要测试,只需删除.
3.7.4.2/3:
提供给解除分配函数的第一个参数的值可以是空指针值; 如果是这样,并且如果解除分配功能是标准库中提供的功能,则该调用无效.
| 归档时间: |
|
| 查看次数: |
324 次 |
| 最近记录: |