我告诉你一个识别 C++ 代码质量的诀窍:找几个 class,如果其 dtor 有 delete 或释放资源的操作,看看作者是否同时正确禁用了 copy ctor 和 assignment operator(或者正确实现了它们,如果 class 确实应该是 copyable 的话),这反映了作者设计 C++ class 的基本功:正确管理内存和其他资源,以及他有没有认真读过 Effective C++。
我认为 C++ 标准应该这样规定,只要用户自己定义了 dtor,就默认禁掉 copy ctor 和 operator=,这样更安全。此时,如果确实有需要,用户可以自己定义 copy ctor 和 operator=。
作者:陈硕
链接:https://www.zhihu.com/question/39169728/answer/97243257
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。