C 返回复制对象

C++ Returned Copy Object

本文关键字:对象 复制 返回      更新时间:2023-10-16

我有一个具有函数的类,该功能返回私人成员的副本:

class MyClass
{
    MyString str;
public:
    MyString getStr() { return str; }
}

另一个功能func接收到绑定到语句句柄的const &MyString。当我调用func(o.getStr())时,getStr返回的复制对象在func调用后不范围,并且对语句句柄不再有效。我可以创建一个局部变量MyString ms = o.getStr(),然后将其传递给func,但是我不想为不同的getters多次这样做。另外,func需要进行参考,因为有时我需要传递局部变量并在随后使用语句句柄后更改其值。有很好的解决方案吗?

MyString复制 getStr()返回在 func()退出之前不会脱离范围,以确保 func()可以访问副本。