读书人

C++ 右值摘引

发布时间: 2012-10-19 16:53:37 作者: rapoo

C++ 右值引用
VS2010的vector模板类的void push_back(_Ty&& _Val)
用到了右值引用,这是C++11标准有的。

但我试了

vt.push_back(MyClass(1));
仍然会调用一次构造函数,一次复制构造函数。那和push_back(const _Ty& _Val)这样,有啥区别呀,直接用const引用参数不就行了。

[解决办法]
void FunTest(MyClass && fi)
{
cout<<"&&"<<endl;
}

void FunTest(const MyClass & fi)
{
cout<<"const &"<<endl;
}

int main(int argc, char *argv[])
{
MyClass fi("ABC");
FunTest(fi);
return 0;
}
[解决办法]
添加一个移动构造!
[解决办法]
你的move constructor呢?

读书人网 >C++

热点推荐