[英]Overloading the () operator for an enum in a class - C++
我遇到了以下代碼:-
class MyClass{
public:
enum ITEMS {
ZERO = 0,
ONE,
TWO,
THREE
};
enum ITEMS item;
MyClass():item(THREE){}
MyClass(ITEMS item):item(item){};
operator ITEMS () {
return item;
}
};
我無法弄清楚operator()在枚舉ITEMS上的重載是什么。 在MyClass類型的對象的上下文中將如何使用? 假設我們有一個對象:
MyClass obj1;
我們可以做obj1.VALUES()
嗎? 如果嘗試這樣做,將會出現編譯錯誤。
operator ITEMS (){...}
是鑄造過載目標類型ITEMS
。 當您投射MyClass
的實例以鍵入MyClass::ITEMS
,將返回類成員item
。
它允許您將MyClass
類型的對象轉換為ITEMS
類型的變量,例如:
MyClass mm;
MyClass::ITEMS it = mm;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.