是的,C++右值引用支持自定義類型
#include <iostream>
class MyClass {
public:
MyClass() { std::cout << "MyClass 構(gòu)造函數(shù)" << std::endl; }
~MyClass() { std::cout << "MyClass 析構(gòu)函數(shù)" << std::endl; }
};
MyClass&& myClassRValueReference(MyClass&& obj) {
return obj;
}
int main() {
MyClass obj;
MyClass&& rvalueRef = myClassRValueReference(std::move(obj));
return 0;
}
在這個(gè)例子中,我們定義了一個(gè)名為MyClass
的類,并創(chuàng)建了一個(gè)名為myClassRValueReference
的函數(shù),該函數(shù)接受一個(gè)右值引用參數(shù)并返回它。在main
函數(shù)中,我們創(chuàng)建了一個(gè)MyClass
對(duì)象,然后使用std::move
將其轉(zhuǎn)換為右值,并將其傳遞給myClassRValueReference
函數(shù)。這個(gè)例子展示了右值引用如何支持自定義類型。