摘要: 一个对象是左值还是右值会影响其成员函数的调用,在参数后边放置一个引用限定符来修饰:&表示该对象是左值,&&表示该对象是右值。 class Foo{ public: Foo sorted() &&; //右值对象可以调用 Foo sroted() const &; //任何对象都可以 private: 阅读全文
posted @ 2022-05-18 20:14 hellozhangjz 阅读(103) 评论(0) 推荐(0) 编辑
摘要: 右值的定义:只能出现在等号“=”右边的表达式。 当我们需要拷贝或者复制一个右值的时候,我们可以考虑移动右值。因为拷贝会新建一个对象,当对象初始化需要分配内存,拷贝的分配内存开销也很大,而移动不会新建对象,而是接管右值的资源。 对象移动是相对于对象拷贝的,在一些场景(比如:把对象作为一个参数传递)移动 阅读全文
posted @ 2022-05-18 17:24 hellozhangjz 阅读(61) 评论(0) 推荐(0) 编辑