1、delete之前多余的判断,通常是在析构函数里:
if (ptr != NULL){
delete ptr;
}
说明:C++规范中规定对空指针delete相当于什么都不做,这个判断不需要你来做。
2、什么都不做的构造、析构函数:
class Example
{
public:
Example() {};
~Example() {};
};
说明:既然什么都不做,还是留给编译器去生成吧,除非是作为基类,需要把dtor声明为virtual。
3、new完之后判断是否是NULL:
Example *pExam = new Example;
if (pExam == NULL)
{
// ...
}
说明:这里不讨论nothrow的情况。这种代码在很多公司的产品代码库里都有机会找得到,看到这样的代码可以粗略判断coder的学习习惯和技能水平。new失败会throw,不是通过返回的指针来判断的。
4、析构函数里把成员变量还原成初始值:
1 class Example
2 {
3 public:
4 Example() : someFlag_(false)
5 {
6 ...
7 }
8
9 ~Example()
10 {
11 someFlag_ = false; // No need
12 }
13
14 private:
15 bool someFlag_;
16 };
说明:这里不包含类中起线程并使用标记位的情况。多此一举,马上销毁释放的成员变量,放着就好了。
原文链接: https://www.cnblogs.com/surmountian/p/3310945.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/103455
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!