第十二章 类和动态内存分配(3)在构造函数使用new时应注意的事项

(三)在构造函数使用new时应注意的事项

(1)如果在构造函数中使用new来初始化指针成员,则应在析构函数中使用delete来释放内存。

(2)new和delete必须兼容,new和delete对应new name[]和delete []name相对应

(3)如果有多个构造函数,应该以相同的方法使用new,要么带[],要么不带(因为只有一个析构函数)。另外,delete,无论带不带[]都可以用于空指针。空指针表示法,传统的是NULL或0(NULL是0的符号表示),现在可以使用nullptr,这是一种个更好的选择。

(4)应该定义一个复制构造函数,通过深度复制将一个对象初始化为另一个对象。

(5)应当定义一个赋值运算符(运算符重载),通过深度复制将一个对象赋值给另一个对象。具体需要完成的工作是:检查自我赋值的情况;释放成员指针以前指向的内存复制数据而不仅仅是数据的地址;返回一个指向调用对象的引用。

你可能感兴趣的:(第十二章 类和动态内存分配(3)在构造函数使用new时应注意的事项)