从C++函数返回对象的正确方法是什么?

Mat*_*oli 4 c++ pointers reference object

我感到很困惑:

  • 返回一个对象(但是该对象是从函数中的局部变量复制的,这会消耗内存)
  • 返回一个指针(但是你必须记住在调用代码中删除它,这很奇怪)
  • 返回一个引用(但这是不可能的,因为这将是对函数的局部变量的引用,一旦函数结束就会被删除)

我正在寻找从C++函数返回一个对象的正确方法,在基本的C++中(没有库处理指针和自动释放内存).我想知道应该怎么做.

谢谢

Ste*_*end 8

现代编译器通常实现(命名)返回值优化,通过该优化,您引用的(并且逻辑上期望的)副本不会完成.

自从Visual Studio 2005(VC++ 8.0)以来,我没有考虑过返回对象.