基础示例:
ReturnValue MyClass::FunctionThatAltersMembersAndNeverFails()
{
//Do stuff to members of MyClass that never fails
return successfulResultObject;
}
void MyClass::DoWork()
{
// Do some stuff
FunctionThatAltersMembersAndNeverFails();
// Do more stuff
}
在这种情况下,
ReturnValue
对象是否会被复制?它甚至会被构造吗?(我知道这可能取决于编译器,但让我们将此讨论缩小到流行的现代编译器。)编辑:让我们简化一下,因为在一般情况下似乎没有共识。如果
ReturnValue
是一个 int,并且我们返回 0 而不是 successfulResultObject
呢?