C++ 构造函数中使用new时注意事项分享

—-想了解C++ 构造函数中使用new时注意事项分享的全部内容且更多的C语言教程关注<计算机技术网(www.ctvol.com)!!>

使用new初始化对象中的指针成员时遇到的问题

在构造函数中使用new初始化指针成员,那么析构函数中就必须使delete,并且new对应delete, new[]则对应于delete[]。

在有多个构造函数的情况下,必须以相同的方式使用new,要不用new,要不用new[],因为只存在一个析构函数,所有的构造函数都必须与虚构函数相兼容。

PS. 当然在构造函数中使用new初始化指针的时候,可以把指针初始化为空(0/NULL 或者是C++11中的nullptr),因为delete不管有没带[]都与空指针兼容。

需要自行定义一个复制构造函数和赋值构造函数,用深复制的方式把一个对象初始化给另一个对象,一个对象复制给另一个对象,如下:

复制构造函数:

  String:String(const String & st)  {    num_Strings++;    len = st.len;    str = new char[len+1];    std::strcpy(str,st.str);  }

赋值构造函数:

  String & String:operator=(const String & st)  {    if(this == &st)      return *this;    else      delete [] str;      len = st.len;      str = new char[len+1];      std::strcpy(str,st.str);    return *this;  }

以上就是C++ 构造函数中使用new时注意事项分享的全部内容,希望C++ 构造函数中使用new时注意事项分享的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持<计算机技术网(www.ctvol.com)!!>!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/487837.html

(0)
上一篇 2020年11月12日
下一篇 2020年11月12日

精彩推荐