为什么引用const是必要的,以避免复制参数

Nat*_*lin 3 c++ reference

根据维基百科,函数调用不要复制它们是参数referencesconst类型:

void f_slow(BigObject x);
void f_fast(const BigObject& x);

f_slow(y); // slow, copies y to parameter x
f_fast(y); // fast, gives direct read-only access to y
Run Code Online (Sandbox Code Playgroud)

为什么需要参考const?非const参考文献不会做同样的事情:

void f_should_be_fast(BigObject& x);
Run Code Online (Sandbox Code Playgroud)

Mar*_*som 8

是的,任何类型的参考都可以.使其const能更加灵活,因为它可以接受常量变量或临时对象作为参数和文件(并执行)你的意图不修改参数.

  • 你不能总是信任维基百科! (2认同)

Oli*_*rth 7

const真的,这并不影响速度.它只是阻止函数修改原始对象,使其类似于按值传递语义(但显然不相同).

请注意,它也可能值得一读: 想要速度?通过价值