我知道为什么要使默认构造函数和复制构造函数私有,以便在C++中实现单例类。但我不明白的是,为什么要让复制赋值操作符成为私有的,因为开始时不会有两个现有的对象。我的探索有两点:
根据Alexandrescu在“现代设计”( C++ Design)中的说法,为了防止按对C++进行私有赋值操作,如果为类定义ctor、copy ctor和赋值运算符之一,则应显式地定义这三种类型
在一个具有一系列ctors的类中(其中大多数只有一个参数),我希望所有的单参数ctors也被相应的赋值操作符镜像。这些复制者包括但不限于复制者和移动者.所以这个,应该符合第五条规则。return *this;下面是一个最小的例子: (感谢@Daniel指出了稳定性)。我得到的错误是
error: object of type 'object' cannot be assigned because its copy assignment op