3
假设创建一个类,并返回一个函数:以下两种方法是否返回C++对象?
Foo getFoo()
{
return Foo ("bar");
}
而第二种方法:
Foo getFoo()
{
Foo foo ("bar");
return foo;
}
现在我把它与const Foo & myFoo = getFoo()
是第一种方法更有效?他们看起来和我一样,因为他们都创建了一个临时变量并返回它,我错了吗?
在C++ 11中也考虑'return {“bar”};'。 –
@sftrabbit仅当Foo的构造函数不是'explicit'时 – Praetorian
@sftrabbit:聪明的技巧;但不是一个好主意。明确表示将使代码更易于阅读和维护以供未来的编码人员使用。 –