C++11 如何将int作为右值参数传递给函数或构造函数?
在下面的代码中,类A有两个构造函数,一个通过值获取int,另一个通过右值引用获取int。如何使用第二个构造函数调用创建对象C++11 如何将int作为右值参数传递给函数或构造函数?,c++11,c++14,C++11,C++14,在下面的代码中,类A有两个构造函数,一个通过值获取int,另一个通过右值引用获取int。如何使用第二个构造函数调用创建对象 #include <iostream> using namespace std; class A { public: A(int i) : r_i(i) { cout<<endl<<"A(inti)"; } A(int&& i) : r_i(i) { cout<<endl
#include <iostream>
using namespace std;
class A
{
public:
A(int i) : r_i(i)
{
cout<<endl<<"A(inti)";
}
A(int&& i) : r_i(i)
{
cout<<endl<<"A(int&&)";
}
private:
int &r_i;
};
int main()
{
int j = 5;
A a(j); // Works
A b(std::move(j)); // Error [1]
}
#包括
使用名称空间std;
甲级
{
公众:
A(int i):r_i(i)
{
答案的可能重复:在第一个ctor中,你的引用变为悬空,你知道吗?答案的可能重复:在第一个ctor中,你的引用变为悬空,你知道吗?