gpt4 book ai didi

C++ 返回复制对象

转载 作者:行者123 更新时间:2023-11-28 07:02:20 25 4
gpt4 key购买 nike

我有一个类,其函数返回一个私有(private)成员的拷贝:

class MyClass
{
MyString str;

public:

MyString getStr() { return str; }
}

另一个函数 func 接受一个绑定(bind)到语句句柄的 const &MyString。当我调用 func(o.getStr()) 时,getStr 返回的复制对象在 func 调用后超出范围并且不存在对语句句柄不再有效。我可以创建一个局部变量 MyString ms = o.getStr(),然后将其传递给 func,但我不想针对不同的情况多次执行此操作 setter/getter 。此外,func 需要接受一个 ref,因为有时我需要传入一个局部变量并在随后使用语句句柄后更改它的值。有好的解决办法吗?

最佳答案

getStr() 返回的 MyString 拷贝不会超出范围,直到 func() 退出,确保 func () 可以访问拷贝。

关于C++ 返回复制对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22261670/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com