如何使用一个全局函数最后可以return一个类中的成员函数
时间: 2024-04-15 08:29:34 浏览: 52
实例解析C++中类的成员函数指针
您可以通过将该成员函数作为参数传递给全局函数,并在全局函数中调用该成员函数来实现这一目的。以下是一个示例代码:
```cpp
#include <iostream>
class MyClass {
public:
int myFunction() {
return 42;
}
};
int globalFunction(MyClass* obj, int (MyClass::*memberFunction)()) {
return (obj->*memberFunction)();
}
int main() {
MyClass obj;
int result = globalFunction(&obj, &MyClass::myFunction);
std::cout << "Result: " << result << std::endl;
return 0;
}
```
在上述示例中,`MyClass` 类中有一个成员函数 `myFunction`,它返回一个整数。`globalFunction` 是一个全局函数,接受一个 `MyClass` 对象指针和一个指向 `MyClass` 成员函数的指针作为参数。在 `globalFunction` 中,我们使用指针运算符 `->*` 来调用传递进来的成员函数,并返回其结果。
在 `main` 函数中,我们创建了一个 `MyClass` 对象 `obj`,并通过调用 `globalFunction` 来调用 `myFunction`。最后,我们将结果打印到控制台上。
请注意,由于全局函数无法直接访问类的成员变量,因此我们只能通过成员函数来访问类中的成员变量,并通过全局函数间接地获取该值。
阅读全文