c++ - 有没有人发现需要声明一个复制赋值运算符的返回参数const?

标签 c++ assignment-operator

复制赋值运算符具有通常的签名:

    my_class & operator = (my_class const & rhs);

下面的签名有实际用途吗?

    my_class const & operator = (my_class const & rhs);

您只能定义其中之一,而不能同时定义两者。

最佳答案

使复制赋值的返回类型成为非常量引用的主要原因是它是标准中“可赋值”的要求。

如果您将返回类型设为 const 引用,那么您的类将无法满足在任何标准库容器中使用的要求。

关于c++ - 有没有人发现需要声明一个复制赋值运算符的返回参数const?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2649068/

相关文章:

c++ - 访问 std::string 中字符串的位置大于其大小的元素

c++ - 如何在 C++ 中使用基类的构造函数和赋值运算符?

postgresql - 被遗忘的赋值运算符 "="和常见的 ":="

C++:在派生类构造函数中调用基类赋值运算符的形式不正确?

c - 防止在 C 中分配类型

c++ - Boost Socket 在 close() 上崩溃

c++ - 如何获取 vector 中相同值的索引数组?

c++ - 在 O(log(n)) 时间内从 std::set 中随机选择一个元素

c++ - 如何在 Windows 10 上使用带有 PT_PEN 的 InjectTouchInput() 从数字转换器注入(inject)笔输入

c++ - 在可移动和不可复制的类上使用移动和交换习语是否有意义