我寫了這樣一段代碼:
class widget_12 {
public:
//參考限定符的例子。
void dowork()&
{
std::cout << "*this is lvalue
"。
}; //此版本的dowork適用于*this是lvalue時。
void dowork()&&
{
std::cout << "*this is rvlaue
"。
}; // -||- *this is rvalue.
widget_12&& make_widget()
{
/TODO。
}
};
我想測驗參考限定符,因此我需要創建一個函式來回傳widget_12的r值,你能告訴我怎么做嗎?
我基本上想做這樣的呼叫:
make_widget().dowork()。
uj5u.com熱心網友回復:
你是在嘗試這樣的東西嗎?
https://godbolt.org/z/TPEWe3eKv#include <iostream>
class widget_12 {
public:
//參考限定符的例子。
void dowork() &。
{
std::cout << "*this is lvalue
"。
}; //此版本的dowork適用于*this是lvalue時。
void doword() &&
{
std::cout << "*this is rvlaue
"。
}; // -||- *this is rvalue.
static widget_12 make_widget()
{
return widget_12()。
}
};
int main()
{
widget_12 w;
w.dowork()。
//w.doword(); // error。
widget_12::make_widget().doword()。
//widget_12::make_widget().dowork(); // error。
return 0;
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/314133.html
標籤:
