gpt4 book ai didi

C++ 指向对象的类成员的指针

转载 作者:行者123 更新时间:2023-11-30 01:40:44 25 4
gpt4 key购买 nike

我有一个类,里面有一个数组。在这个数组中,我想将一个函数指针指向一个与我的实例具有相同 this 指针的函数。

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

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

如何做到这一点?我想,当我像 &Foo::baz() 一样运行它时,baz 没有(有效的)this 指针或没有指向实例。

什么是好的解决方法?

最佳答案

而不是存储指向 *baz 的指针,你可以存储一个 std::function<void()> .

然后您可以存储一个带有绑定(bind)实例的 lambda:

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

你的类看起来像这样:

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

关于C++ 指向对象的类成员的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42721866/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com