[英]C++ Pointer Object Functor
我很困惑為什么C ++不允許你在指針上使用仿函數。 例如,如果我有類似這樣的東西作為我的班級:
class Character{
public:
Character();
~Character();
void operator()() {cout << "HELLO WORLD" << endl;}//this is the functor operator
};
當我做這樣的事情時,我得到一個錯誤,說我不能將字符稱為函數...
Character * character = new Character();
character();
delete character;
但這很好用:
Character character;
character();
在第一個場景中,我將如何訪問此運算符? 它甚至可能嗎?
是的,取消引用指針:
(*character)();
或者更詳細地說:
character->operator()();
您需要通過指針執行間接操作以使用指向的對象:
(*character)()
它是一個指針,這就是為什么:
character->();
或
(*character)()
是你的朋友。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.