簡體   English   中英

指向對象類成員的C ++指針

[英]C++ pointer to object's class member

我有一個帶有數組的類。 在此數組的內部,我想將一個函數指針指向一個與我的實例具有相同的指針的函數。

class Foo {
   std::vector <void (*baz)> bar;
   void baz () {};
}

Foo bundy;
bundy.bar.push_back (/*???*/); 

如何才能做到這一點? 我想,當我像&Foo::baz()一樣運行它時, baz沒有(有效)此指針或沒有指向實例。

有什么好的解決方法?

除了存儲指向*baz的指針,您還可以存儲std::function<void()>

然后,您可以存儲具有綁定實例的lambda:

Foo bundy;
bundy.bar.push_back([&bundy](){ bundy.baz(); });

您的課程將如下所示:

class Foo {
  public:
    std::vector<std::function<void()>> bar;
    void baz() {};
};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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