假设我有一个类,其中唯一的数据成员类似于 std::string
或 std::vector
。是否需要提供复制构造函数、析构函数和赋值运算符?
最佳答案
如果您的类仅包含 vector/字符串对象作为其数据成员,则无需实现这些。 C++ STL 类(如 vector 、字符串)具有自己的复制 ctor、重载赋值运算符和析构函数。
但如果你的类在构造函数中动态分配内存,那么简单的浅拷贝就会导致麻烦。在这种情况下,您必须实现复制 ctor、重载赋值运算符和析构函数。
关于c++ - 在什么情况下我必须为我的 C++ 类提供赋值运算符、复制构造函数和析构函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2386231/