我有一个带有函数的类,它返回私有成员的副本:
class MyClass
{
MyString str;
public:
MyString getStr() { return str; }
}
另一个函数func接受绑定到语句句柄的const &MyString
。当我调用func(o.getStr())
时,getStr
返回的复制对象在func
调用后超出范围,并且对语句句柄不再有效。我可以创建一个局部变量MyString ms = o.getStr()
,然后将其传递给func
,但我不想为不同的getter多次执行此操作。此外,func
需要接受引用,因为有时我需要传入一个局部变量并在后续使用语句句柄后更改它的值。对此有一个很好的解决方案吗?
答案 0 :(得分:1)
MyString
返回的getStr()
副本在func()
退出之前不会超出范围,确保func()
可以访问该副本。