归档 2010年10月9日

最后更新于 .

一般来说,函数指针的用法是比较简单的。 比如对于函数:


int innerFunc(int num);

可以使用:


int (*ptrFunc)(int);
ptrFunc = innerFunc;//或&innerFunc

或者为了复用:

typedef int (*FUNC)(int);
FUNC ptrFunc;
ptrFunc = innerFunc;//或&innerFunc

但是当你使用类成员函数指针的时候,会发现完全不是那么一回事!而我今天就杯具的遇上了。。

废话不多说,直接上代码吧


#include
#include
#include
#include
using namespace std;

class Foo
{
public:
string m_str;
Foo()
{
m_str = "";
}
void test(char* str,int num)
{
m_str = str;
int (Foo::*ptrFunc)(int);

ptrFunc = &Foo::innerFunc;
//(*ptrFunc)(num);
//(this->(*ptrFunc))(num);
(this->*ptrFunc)(num);
}
int innerFunc(int num)
{
cout< cout< }
};

int ...

昨天

2010年10月7日

明天

2010年10月11日

归档