0

人们倾向于说pass by (const) reference if you want speed,老实说,我很少在我创建的方法上使用 const 引用,只是因为速度,我只在需要时才进行引用,例如给变量赋值,就像这个 SSCE

void Do( int& iref )
{
    a = 2;
}

{
    int a = 0;
    Do( a );
}

问题实际上是,如果对象是在函数调用上创建的,是否也将其作为引用传递,这是如何工作的?

void Add( CString& strPath )
{
    g_Path.push_back( strPath );
}

for( std::string line; getline( input, line ); )
{
    Add( CString( line.c_str() ) ); //object created on function call
}
4

1 回答 1

3

这是如何运作的?它没有。该代码无法编译,因为临时对象无法绑定到非 const 左值引用。

(不过,临时对象可以绑定到 const 引用或右值引用。)

于 2012-10-13T15:36:54.413 回答