c++ - 关于重载赋值运算符的困惑

标签 c++ operator-overloading

假设有一个名为 Vector 的类,我想为它重载赋值运算符,使其能够像这样工作: a = b = c;(a,b,v是Vector类的对象)

但是有一件事让我很困惑。 假设有两个原型(prototype):

Vector & operator=(const Vector & v);
const Vector & operator=(const Vector & v);

两者都适用于 'a=b=c' 的情况。 那么,哪个更好或对呢?

最佳答案

对于初学者来说,将您的类命名为“Vector”可能会导致经常与 std::vector 混淆和混淆。你应该选择一个更好的名字。不幸的是,“array”现在也被占用了......

第一个是标准赋值运算符。当然,赋值运算符仅针对可变类实例定义,因此它应该返回对可变类实例的引用。

关于c++ - 关于重载赋值运算符的困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35504851/

相关文章:

c++ - 使用函数式编程计算生存到选择

c++ - SDL2 抗锯齿

C++ 检查应用程序中的文本框值

c++ - QTreeView选择清除文本颜色

c++ - 模板和类型转换运算符(operator)

c++ - 需要使用 Book* head 变量重载运算符但不起作用

c++ - "Unable to open file libc++abi.dylib"。程序构建,但在运行时崩溃。使用 xcode 10.1 (10B61)

c++ - 为类重载运算符 new

c++ - Boost.Spirit 表达式未找到重载输出运算符

用于模板重载的 C++ 模糊运算符