摘要: 完美转发 所谓转发,就是通过一个函数将参数继续转交给另一个函数进行处理,原参数可能是右值,可能是左值,如果还能继续保持参数的原有特征,那么它就是完美的。 void process(int& i){ cout (i));}myforward(2); // ... 阅读全文
posted @ 2019-09-26 23:32 DH_HUSTer 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 移动构造和移动赋值 回顾一下如何用c++实现一个字符串类MyString,MyString内部管理一个C语言的char *数组,这个时候一般都需要实现拷贝构造函数和拷贝赋值函数,因为默认的拷贝是浅拷贝,而指针这种资源不能共享,不然一个析构了,另一个也就完蛋了。... 阅读全文
posted @ 2019-09-26 22:29 DH_HUSTer 阅读(15) 评论(0) 推荐(0) 编辑
摘要: c++中引入了右值引用和移动语义,可以避免无谓的复制,提高程序性能。 左值、右值 C++中所有的值都必然属于左值、右值二者之一。左值是指表达式结束后依然存在的持久化对象,右值是指表达式结束时就不再存在的临时对象。 所有的具名变量或者对象都是左值,而右值不具名。... 阅读全文
posted @ 2019-09-26 21:06 DH_HUSTer 阅读(16) 评论(0) 推荐(0) 编辑