在不同类中使用和设置静态函数指针
Using & Setting Static Function Pointers in Different Classes
我有两个班,A和B
A有一个函数叫做foo();
B有一个静态函数指针指向foo,我们称它为fuu。
类B中fuu的定义如下
static void (A::*fuu)();
在运行时的某个地方,类A集合fuu。我写的代码类似于
B::fuu = &A:foo;
这正确地设置了函数指针,但是我无法使用它(我在B类中调用它)
我试过了
*fuu();
B::fuu();
B::*fuu();
是否有语法错误阻止我解引用?
TLDR:试图从类a的实例调用非静态函数,从类B的静态函数
你需要
(a.*fuu)();
其中a
是A
类的对象,或
(aptr->*fuu)();
其中aptr
为类型为A*
的指针。
如果没有A
类的对象,就不能调用A
类的非静态成员函数
相关文章:
- 给定一个C++嵌套的私有结构类型,是否有从文件范围静态函数访问它的策略
- 检查编译时是否存在静态函数
- 名称隐藏对静态函数继承的实例使用
- 如果 C 函数仍然可以间接执行(通过回调函数),那么将它声明为静态函数是否是一种不好的做法?
- 类中静态函数C++意外结果
- 在工人类中使用不同类的静态函数进行实验
- 类 Referention 中C++回调函数引用非静态函数
- 指向模板上下文中的成员函数或静态函数的指针
- 如何检测 Clang AST C++中的静态函数
- 内联asm编译器屏障(内存阻塞器)是算作外部函数,还是算作静态函数调用
- 仅在函数中设置静态变量一次
- 如何在静态函数中使用成员函数数组
- (2 问题)"类"类型重新定义(即使 #pragma 一次),以及静态函数内的静态成员对象初始化?
- 如何在模板类中设置静态常量变量
- 生成代码(在编译时)以调用模板的每个实例化的静态函数
- C++无法访问或使用静态函数
- 将函数的引用设置为其他 c++ 文件中的非静态函数
- 通过C++中的非静态函数设置对C函数指针的回调
- 设置 V8 函数时无效使用非静态成员函数
- 在不同类中使用和设置静态函数指针