簡體   English   中英

C ++指針對象編程器

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM