为什么将 const (...)& 放在 C 中

新手上路,请多包涵

我想知道 - 为什么将 const (...)& 放在 C++ 中是个好主意?我在一些课堂教程中找到了这段代码。我知道 const 正在使某些东西保持不变并且无法更改,而 & 正在将其传递给函数。为什么两者都做?如果我不能改变某些东西,我为什么要把它传递给函数?

这是一个例子:

 class CVector {
      public:
        int x,y;
        CVector () {};
        CVector (int a,int b) : x(a), y(b) {}
        CVector operator + (const CVector&);
    };

    CVector CVector::operator+ (const CVector& param) { //example
      CVector temp;
      temp.x = x + param.x;
      temp.y = y + param.y;
      return temp;
    }

原文由 Igracx33 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 417
1 个回答

尽管 const 阻止您更改参数的值,但最好发送对它的引用,而不是按值发送它,因为在大型对象中,按值发送它需要复制它首先,这在通过引用调用时不是必需的

原文由 CIsForCookies 发布,翻译遵循 CC BY-SA 3.0 许可协议

推荐问题