const type& param 的使用

34 阅读1分钟

最近突然发现我写代码时非常容易下意识使用类似const std::string& str,这样的形参。 但是为什么这样写,有没有好处,我还不清楚。所以今天记录一下。

void A(const AA& a) {
    _aa = std::move(a);
}

现在我有一个这样的函数,其实因为a是const,是不能被修改的,所以std::move是生效不了的。还是会调用a的拷贝。 效果等同于

void A(const AA a) {
    _aa = a;
}

只是说从函数调用的性能上来讲,可以少一次拷贝构造开销。