gpt4 book ai didi

c++ - C++ 中的 std::move 和按引用传递有什么区别?

转载 作者:行者123 更新时间:2023-11-28 04:18:26 24 4
gpt4 key购买 nike

<分区>

我觉得通过引用传递并且 move 具有相同的结果。在下面的示例中, move 语义和按引用传递具有相同的结果。我假设当我们使用 move 语义时,所有权传递给函数,并且主要是变量不包含任何值。

#include <iostream>

using namespace std;
void move_function(int&& a)
{
cout<<"a:"<<a<<endl;
a++;
cout<<"a:"<<a<<endl;
}

void function(int& val)
{
val++;
cout<<"val:"<<val<<endl;;
}

int main()
{
int a = 100;
move_function(move(a));
cout<<"main a:"<<a<<endl;
function(a);
cout<<"main a:"<<a<<endl;

return 0;
}

谁能帮我解释一下我的困惑。我对 move 的理解哪里出了问题?

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