C++ 如何使用特定对象的函数指针调用成员函数

C++ 如何使用特定对象的函数指针调用成员函数,c++,C++,我有以下代码: #include <iostream> class foo { public: foo(int yy){y = yy;} void f(int x){std::cout<<x;} private: int y; }; void main() { foo* obj = new foo(123); void (foo::*func)(int) = &foo::f;

我有以下代码:

#include <iostream>

class foo
{
    public:
        foo(int yy){y = yy;}
        void f(int x){std::cout<<x;}

    private:
        int y;
};

void main()
{
    foo* obj = new foo(123);
    void (foo::*func)(int) = &foo::f;

    //how do I call func with obj as this?
    delete obj;
}
#包括
福班
{
公众:
foo(int-yy){y=yy;}
void f(intx){std::cout您这样称呼它:

(obj->*func)(42);
第一组括号是必需的,因为“应用函数调用”优先于解除引用PTM
->*
运算符

您还可以使用
std::bind

std::function<void(int)> my_f = std::bind(func, obj, std::placeholders::_1);

my_f(43);
std::function my\u f=std::bind(func、obj、std::占位符::\u 1);
我的f(43);

之前的100篇帖子中都有这方面的内容,所以可能有人认为你只是懒惰,不知道如何在谷歌中键入任何内容。我,我完全腐败,更喜欢声誉;-)我同意,但我现在已经做了20次,以节省时间,因此+1取消投票:p@w00te:这是一个滑杆就我个人而言,如果答案也很短,我不介意回答一个简洁的问题,而且通常这确实是一个快速的方法。(事实上,整个MySQL部分似乎都是这样工作的。)这个问题可能没有太多的“价值”,因为有容易找到的资源覆盖它,但这是一个确定的问题。我将坚定地保留我的“反对票”在上面:-)