读书人

调用语句

发布时间: 2012-08-02 11:35:26 作者: rapoo

求一个调用语句
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写成静态方法,可以脱离对象传

读书人网 >C++

热点推荐