首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C++ 右值摘引

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

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呢?

热点排行