在运算符重载时使用引用(C ++)

时间:2014-08-30 22:33:25

标签: c++ reference overloading operator-keyword

我试图从Lynda的C / C ++ Essential Training学习C和C ++。现在,我在函数部分,Bill Weinman在该部分的一个课程中讨论了运算符重载函数。以下是他展示的方式:

int operator + (A & lhs, A & rhs ) {
    cout << "operator + for class A" << endl;
    return lhs.value() + rhs.value();
}

我正在使用代码而事实证明它不是使用引用,我只能编写正常的参数,而编译器允许这样做。

int operator + (A lhs, A rhs)
{
    return (lhs.value() + rhs.value());
}

当我使用引用时,我无法添加三个值。这给了我一个错误:

member1 + member2 + member3

但是当我使用普通变量而不是引用作为参数时,编译器对此很好。我搜索了互联网,看看其他人是否做到了这一点,但Tutorials Point是一样的。他们在参数中使用了参考。

所以,我想了解他们为什么使用参考文献?是什么原因?我已经知道为什么不可能使用3个成员参考,但我不知道为什么我们必须使用参考。

提前致谢。我不是母语人士,对任何错误都感到抱歉。

0 个答案:

没有答案