在C++中使用常量引用和非常量引用在性能上有区别吗?如果是,那么哪个更好,为什么?
SystemC中有声明手册指出通过非常量引用传递对象是一种快速解决方案。
最佳答案
不,完全没有区别。 const
仅适用于本地,但任何最新的编译器都能够轻松确定引用是否已更改,因此没有任何区别。
考虑这个场景:
void MyClass::foo(const int& param)
{
m_myInt1 = param + 1;
m_myInt2 = param;
}
在这两种情况下,每次访问param
都必须通过内存。为什么?因为 param
可能是 m_myInt1
的别名。
MyClass bar;
bar.foo(bar.m_myInt1);
const
引用仅意味着不能通过该引用修改param
。您仍然可以通过一些其他引用来修改它(在本例中,通过 this->m_myInt1
)。
关于c++ - 常量引用优于非常量引用的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12421884/