C++ 如何将类的一个成员传递给另一个类的另一个成员

C++ 如何将类的一个成员传递给另一个类的另一个成员,c++,class,parameters,C++,Class,Parameters,我有个问题。我有两个类,需要将其中一个类的成员作为参数传递给另一个类的另一个成员,如下所示: class A{ public: int functionA(string x); . . .}; 及 这就是functionB(…)的外观 void B::functionB( /*functionA*/){ string x = generateString(); functionA(x); . . . } 我怎么能这么做?我尝试了function&fun,但在有类的情况下,这似乎不

我有个问题。我有两个类,需要将其中一个类的成员作为参数传递给另一个类的另一个成员,如下所示:

class A{
public:
      int functionA(string x);
.
.
.};

这就是
functionB(…)
的外观

void B::functionB( /*functionA*/){
string x = generateString();
functionA(x);
.
.
.
}
我怎么能这么做?我尝试了
function&fun
,但在有类的情况下,这似乎不是我想要的。我还尝试了
functionB(int(aClass::*func)(string),aClass&a)
,但结果与之前相同

任何帮助都将不胜感激


谢谢

如果您使用的是C++11或更高版本,则可以使用lambda:

class A
{
public:
    void functionA(const std::string& x)
    {
        // do something with string
    }
};

class B
{
public:
    void functionB(const std::function<void(const std::string&)>& lambda)
    {
        lambda("test");
    }
};
这里有一个完整的演示:

我尝试了function&fun,但在有类的情况下,这似乎不是我想要的

看起来你尝试了错误的方法,效果很好:

class A {
public:
     void foo(std::string str) { std::cout << str << std::endl; }
};

int main()
{
     A a;
     std::function<void(std::string)> f = std::bind( &A::foo, &a, std::placeholders::_1 );
     f("test");
}
A类{
公众:

void foo(std::string str){ STD::CUT:你是否想传递一个函数?你可以通过一个引用来对类进行调用,然后调用一个方法。如果你真的想回调函数指针,请确认。如果你想使用一个方法,你能指定你使用的C++标准吗?这可能有助于指导答案。谢谢。
functionA
上的
functionB
是最有效的方法。我使用c++11。考虑到我希望
functionA
的参数是
functionB
内部生成的字符串,你确定这会起作用吗?@Capie,是的,它应该工作得很好。请查看我发布的示例链接以获取演示。
A a;
B b;
b.functionB([&a] (string x) { a.functionA(x); });
class A {
public:
     void foo(std::string str) { std::cout << str << std::endl; }
};

int main()
{
     A a;
     std::function<void(std::string)> f = std::bind( &A::foo, &a, std::placeholders::_1 );
     f("test");
}