是的,C++右值引用支持自定义类型
#include <iostream>
class MyClass {
public:
MyClass() { std::cout << "MyClass 构造函数" << std::endl; }
~MyClass() { std::cout << "MyClass 析构函数" << std::endl; }
};
MyClass&& myClassRValueReference(MyClass&& obj) {
return obj;
}
int main() {
MyClass obj;
MyClass&& rvalueRef = myClassRValueReference(std::move(obj));
return 0;
}
在这个例子中,我们定义了一个名为MyClass
的类,并创建了一个名为myClassRValueReference
的函数,该函数接受一个右值引用参数并返回它。在main
函数中,我们创建了一个MyClass
对象,然后使用std::move
将其转换为右值,并将其传递给myClassRValueReference
函数。这个例子展示了右值引用如何支持自定义类型。