代码之家  ›  专栏  ›  技术社区  ›  pankajt

返回引用在运算符重载中的重要性是什么?

c++
  •  2
  • pankajt  · 技术社区  · 17 年前

    有人能解释为什么重载运算符时需要返回引用吗 例如

    friend std::ostream& operator<< (std::ostream& out, const std::string& str)
    
    3 回复  |  直到 17 年前
        1
  •  7
  •   unwind    17 年前

    要使操作员的“链接”工作,例如:

    std::cout << "hello," << " world";
    

    如果第一次(最左边)使用 operator<<() 如果没有返回引用,就不会有对象调用该运算符的第二次使用。

        2
  •  4
  •   akappa    17 年前

    它用于操作链接(如果返回指针,则必须取消对它的引用),如果可能的话,还可以不制作对象的潜在巨大且昂贵的副本(在返回值的情况下)。

        3
  •  3
  •   rlbond    17 年前

    Scott Meyers在有效C++中所说的一般规则是,当有疑问时,“做为 ints “做”。例如,operator=应该返回一个引用,这样代码就可以工作了:

    MyClass A, B, C;
    A = B = C = 0;