求一个调用语句
A类中有void b(int)方法,非静态的.
如何在A a中调用一个全局函数 void c(pFunc p);
已知有定义 typedef int (*pFunc)(int i);
要把A::b作为参数传入c
我只会用非对象的函数指针,如果这个函数是对象函数就没辙了
无码无真相:
- C/C++ code
class A { public: void b(int i); void yourTest();}typedef int (*pFunc)(int i);void c(const char * file , pFunc p);请问如何在A::yourTest()的实现中调用c方法?不传A的实例对象能做到吗?
- C/C++ code
void A::yourTest(){ const char * file = "test.txt"; c(file ,&(this->b));//我写了这样不行,求大神}[解决办法]
如果你的b函数没有使用到A类的其他成员变量,那为何不写成static函数?
如果你的b函数有使用到A类的其他成员变量,那又如何不传递实例对象是使用这个函数呢?
其实你的要求是能做到的。只是这是一个不安全的做法,原因就是因为上面的第2个情况。所以我觉得你最好的做法是选择第1种做法。
[解决办法]
b写成静态方法,可以脱离对象传