<分区>
我觉得通过引用传递并且 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 的理解哪里出了问题?