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