C++入门学习十五 移动语义

左值和右值

左值lvalue:持久存在的值,可在以后获取其地址。

右值rvalue:暂时存在的值。所有字面量是右值。

左值引用:我们平时使用的引用一般都是左值引用&。

右值引用:两个&符号,即&&

std::move():将左值转换成右值


int main()
{
	vector<int> a = {2,3};
	vector<int> b = move(a);
	cout << a[0] << endl; // 报错,一般移动完后就不能再使用这个变量了
	return 0;
}

六种特殊的成员函数

默认构造函数

析构函数

副本构造函数

复制赋值运算符

移动构造函数

移动赋值运算符

5的规则:只要声明了除默认构造函数外的5种特殊构造函数中的一种,就应该声明全部5种

1的规则:尽可能避免实现任何特殊成员函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值