c++ - 隐藏自动生成的赋值运算符和复制构造函数而不替换它们

标签 c++

我想公开隐藏复制构造函数和赋值运算符。

此外,我想提供一个clone()

是否可以将复制构造函数和赋值运算符标记为 protectedprivate 并在克隆函数中使用它们?

也许是某种 using 子句。

原因是该类包含一些数据和一个唯一的 id,每个实例都应该递增。因此制作拷贝将使用默认赋值运算符,然后更改 id。我想避免手动复制每个成员的需要,以避免在将成员添加到类(class)时忘记添加一个成员。

最佳答案

你可以这样做:

class MyClass {
      MyClass(const MyClass&) = default;
      MyClass& operator=(const MyClass&) = default;
};

关于c++ - 隐藏自动生成的赋值运算符和复制构造函数而不替换它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35131797/

相关文章:

c++ - 允许动态分配的对象的C数组

c++ - 如何将 SHFileOperation() 与 CString 路径一起使用

c++ - 在 Boost Spirit Qi 中,我如何将每个字符匹配到下一个空格(带预跳过)

c++ - 使用 XCTest 编写 C++ 单元测试

C++ if 语句数学评估错误

c++ - 使用命名空间时简单函数不起作用

c++ - 在没有它们的笔记本电脑上创建 Alt 代码

c++ - 如何在 C++ 中使用 "resize"动态对象数组

c++ - 未定义的静态队列引用

c++ - 从字符串中删除 char 的第一个和最后一个实例