0
我想以這種方式重載數組運算符。C++箭頭運算符重載。如何獲取訪問方法的名稱?
A b;
b->c;
和b-> c
應擴大到 boverloadarrayfunction("c");
這可能嗎?
編輯:免責聲明我知道這是壞事。
爲什麼:我想在QueryInterface中添加間接級別。
我想以這種方式重載數組運算符。C++箭頭運算符重載。如何獲取訪問方法的名稱?
A b;
b->c;
和b-> c
應擴大到 boverloadarrayfunction("c");
這可能嗎?
編輯:免責聲明我知道這是壞事。
爲什麼:我想在QueryInterface中添加間接級別。
operator->
是不數組運算符。沒有任何一家C++運營商以這種方式正式被調用,但最符合該名稱的將是索引編號opeator[]
。b->c
中,可能會實現,c
是一個符號,即某些變量或函數的名稱。另一方面,另一方面是"c"
是一個字符串文字,並且第一個不能轉換爲後者(除了一些黑色的預處理器魔法,它不適用於表達式b->c
)。你可能想查找如何重載operator->
的作品,因爲它是在這個意義上,它必須返回一個指針或具有operator->
重載另一個對象特殊。編譯器將在任何返回的對象上調用->
,直到它真正解引用指針爲止。
你可以重載'operator->',但是如果過載不像指針那樣工作,它就是非常糟糕的形式。 –
您認爲哪個算子是「數組運算符」? –
而'c'不會因爲你希望成爲一個字符串。 –