1

在 C++ 中使用常量引用和非常量引用时性能是否存在差异?如果是,那么哪个更好,为什么?

SystemC手册中有一条声明,通过非常量引用传递对象是一种快速的解决方案。

4

1 回答 1

1

不,根本没有区别。仅适用于本地,但任何最近的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)。

于 2012-09-14T09:40:44.933 回答