习题13.58
class Foo {
public:
Foo sorted() && ;
Foo sorted() const &;
private:
vector<int> data;
};
Foo Foo::sorted() &&
{
cout << "右值引用版本" << endl;
sort(data.begin(), data.end());
return *this;
}
Foo Foo::sorted() const &
{
cout << "左值引用版本" << endl;
//Foo f(*this);
sort(f.data.begin(), f.data.end());
//return f.sorted();
//return Foo(*this).sorted();
return f;
}
int main()
{
Foo f;
//auto k= f.sorted();
f.sorted();
return 0;
}
本文探讨了C++中右值引用的应用实例,通过定义一个Foo类并实现sorted成员函数的两个版本,分别用于返回左值引用和右值引用。通过对不同引用类型的使用对比,展示了在现代C++中如何利用右值引用来提高代码效率。
4502

被折叠的 条评论
为什么被折叠?



