c++ - 运算符重载函数的参数什么时候应该通过常量引用传递?

标签 c++ operator-overloading pass-by-reference

lhs 和 rhs 通过常量引用 (const Type&) 传递。

CVector operator+ (const CVector& lhs, const CVector& rhs) {
    CVector temp;
    temp.x = lhs.x + rhs.x;
    temp.y = lhs.y + rhs.y;
    return temp;
}

最佳答案

  1. 当要复制的数据是轻量级(廉价)时(例如,对于 int、float、char 等,按值传递就可以了)

  2. 该参数在函数/运算符实现中被观察到(即,它是一个输入只读参数)

作为这两点的总结,您将得到我们将明白为什么我们应该通过常量引用传递。

为了清楚地理解,请参阅 http://www.cs.fsu.edu/~myers/c++/notes/references.html

关于c++ - 运算符重载函数的参数什么时候应该通过常量引用传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27783504/

相关文章:

matlab - 为什么当我重载 subsref(下标引用)时 MATLAB 会抛出 "too many output arguments"错误?

c++ - 在释放内存时陷入无限循环

c# - 检查引用参数值或返回 bool 值?

c++ - 重载赋值运算符 : if we return (*this),,它是指针/地址处的值,赋值运算符的正确语法是什么?

c++ - 混合模板化参数类型

c - 在 C 中将 sizeof() 与指向结构的指针一起使用

c++ - 如果我已经检查了 event->type(),我应该检查 QEventdynamic_cast 结果吗?

c++ - 设计API时如何设计const和volatile的重载成员函数?

c++ - doxygen:如何记录\enum 值外线?

c++ - 在调用 pthread_cond_destroy 之前,如何发出信号以中止/唤醒所有等待条件变量的线程?