我有以下功能定义。
struct foo{
vector<int> m_vec;
vector<int>& getVec1()
{
return m_vec;
}
vector<int> getVec2() &
{
return m_vec;
}
vector<int>&& getVec3()
{
return std::move(m_vec);
}
vector<int> getVec4() &&
{
return std::move(m_vec);
}
};
int main()
{
foo x;
x.m_vec.push_back(1);
std::cout << x.getVec1().size() << std::endl;
x.m_vec.push_back(2);
std::cout << x.getVec2().size() << std::endl;
auto y = std::move(x).getVec3();
std::cout << y.size() << std::endl;
foo m;
m.m_vec.push_back(1);
auto z = std::move(m).getVec4();
std::cout << z.size() << std::endl;
}
编译:{{1}}
输出:
1
2
2
1
以下是我的问题:
1.我不知道getVec2()函数定义(什么意思是引用&amp;在括号后面),是否与getVec1()相同?
2.是否与getVec3()和getVec4()函数相同?
提前致谢。