【发布时间】:2018-09-23 17:15:07
【问题描述】:
制作方法有多种方式。我不太确定何时在方法参数中使用 const 和 reference。
想象一个名为“getSum”的方法,它返回两个整数的和。这种方法中的参数可以有多种形式。
int getSum1(int, int);
int getSum2(int&, int&);
int getSum3(const int, const int);
int getSum4(const int&, const int&);
如果我错了,请纠正我,但这是我对这些方法的看法:
-
getSum1- 复制整数并计算 -
getSum2- 不复制整数,而是直接使用内存中的值并计算 -
getSum3- 承诺值不会改变 -
getSum4- 承诺值不会改变并且不会复制整数,而是直接使用内存中的值
所以这里有一些问题:
那么
getSum2比getSum1快,因为它不复制整数,而是直接使用它们?由于值没有改变,我认为 'const' 在这种情况下没有任何区别,但它是否应该仍然存在以保证 const 的正确性?
双打也一样吗?
是否应该只对非常大的参数使用引用?例如如果我要给它上一堂课,那么复制整个东西是没有意义的
【问题讨论】:
-
getSum3 - Promises that the values won't change应该是copies and promises,您缺少copies -
不,没有必要更快,而且很可能会更慢。函数调用仍必须将两个参数传递给函数。除了现在函数没有要添加的两个值,而是必须通过引用指针访问它们。
标签: c++ methods parameters reference constants