gpt4 book ai didi

c++ - 从类中返回可 move 的成员变量

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:30:11 25 4
gpt4 key购买 nike

class foo{
public:
bar steal_the_moveable_object();
private:
bar moveable_object;
};

main(){
foo f;
auto moved_object= f.steal_the_moveable_object();
}

如何实现 steal_the_movebale_objectmoveable_object move 到 moved_object 中?

最佳答案

您可以直接在返回语句中简单地 move 成员:

class foo
{
public:
bar steal_the_moveable_object()
{
return std::move(moveable_object);
}
private:
bar moveable_object;
};

请注意,这可能不是一个好主意。考虑改用以下方法,以便该方法只能在 R-Values 上调用:

class foo
{
public:
bar steal_the_moveable_object() && // add '&&' here
{
return std::move(moveable_object);
}
private:
bar moveable_object;
};

int main()
{
foo f;
//auto x = f.steal_the_moveable_object(); // Compiler error
auto y = std::move(f).steal_the_moveable_object();

return 0;
}

关于c++ - 从类中返回可 move 的成员变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41451928/

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