首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

调用语句

2012-08-02 
求一个调用语句A类中有void b(int)方法,非静态的.如何在A a中调用一个全局函数 void c(pFunc p)已知有定

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

热点排行