【发布时间】:2022-01-10 03:45:09
【问题描述】:
我有一个 C++ 函数指针请求。以下是我需要的示例:
在 API 文件中:
class MyClass {
public:
void function1();
void function2();
void function3();
void function4();
};
在主文件中:
MyClass globalglass;
void global_function_call(???)// <---- how to do declaration of argument???
{
//Do *function
}
int main()
{
global_function_call(&globalglass.function1()); // <---- pseudocode, I need to use global class
global_function_call(&globalglass.function2());
global_function_call(&globalglass.function3());
global_function_call(&globalglass.function4());
return 1;
}
我不知道要声明...
【问题讨论】:
-
global_function_call应该做什么?它应该在globalglass上专门调用functionX,还是您也想将对象传递给它? -
只有一个指向成员&MyClass::function1的函数指针是不够的,不能调用,还需要提供类实例来调用。看看:learncpp.com/cpp-tutorial/…。我发现该语法最有用/可重用: auto lambda1 = [&globalclass]{global_class.function1();}; global_function_call(lambda1);
-
哦,请尝试提出一个不需要全局实例的设计。对于可维护性/可测试性而言,这不是好的设计。您可能想了解依赖注入:en.wikipedia.org/wiki/Dependency_injection_
标签: c++ function-pointers