有效使用功能输出

Izz*_*zzo 2 c++ c++11

过去几周我一直在尝试学习C++,并对良好实践提出疑问.

假设我有一个会产生一些对象的函数.定义函数以生成类型对象的输出是否更好,或者更好的是将函数作为参数传递给对象指针,以便它可以直接修改它?

我想这个答案取决于场景,但我很好奇效率如何发挥作用.当将对象作为参数传递给函数时,我知道使用const引用更有效,这样函数可以立即访问对象而无需生成副本.

在输出功能结果时,这种效率问题会起作用吗?

sp2*_*nny 7

下列:

MyType someFunc()
{
    MyType result;
    // produce value here
    return result;
}
Run Code Online (Sandbox Code Playgroud)

像这样使用:

MyType var = someFunc();
Run Code Online (Sandbox Code Playgroud)

不会复制,也不会移动,而是RVO.这意味着它无论如何都无法提高效率,并且易于阅读,并且难以使用错误.不帮助编译器.