gpt4 book ai didi

c++ - 如何将一个类(class)的成员传递给另一个类(class)的另一个成员

转载 作者:行者123 更新时间:2023-11-30 03:34:45 24 4
gpt4 key购买 nike

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

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

class B{
public:
void functionB( /*here would go functionA*/);
.
.
.
};

这就是functionB(...)会看。

void B::functionB( /*functionA*/){
string x = generateString();
functionA(x);
.
.
.
}

我该怎么做?我试过 function<int(string)>& 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");
}
};

当你调用它时,你会做:

A a;
B b;
b.functionB([&a] (string x) { a.functionA(x); });

完整的演示在这里:http://cpp.sh/5w6ng

关于c++ - 如何将一个类(class)的成员传递给另一个类(class)的另一个成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41836886/

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