vc2005 类成员函数如何赋值?

来源:百度知道 编辑:UC知道 时间:2024/06/16 19:12:49
//aaa.h
class aaa
{
public:
aaa();
virtual ~aaa();

int (aaa::*pfunc)( int);

int fff(int);

};

//aaa.cpp
aaa::aaa()
{
pfunc=fff;

(this->*pfunc)(0);
}

aaa::~aaa()
{

}

int aaa::fff(int)
{
puts( "hello" );
return 0;
}

vc6.0编译完全正确,但是vc2005就报错 pfunc=fff; 这行编译不过!!
请高手指教!!
标题错了:是 vc2005 类成员函数指针 如何赋值?

如下赋值即可:

aaa::aaa()
{
pfunc=&aaa::fff; // 函数指针的赋值

(this->*pfunc)(0);
}

没说完,重新回答:
pfunc是函数指针,初始化赋值方式方式是:
pfunc=NULL;
赋值方式:pfunc=fff; (fff为你的函数名,前面不需要加&号)

但是要注意:
类中的普通函数,不允许使用此方式赋值,正确的函数定义方式为:
class aaa
{
public:
aaa();
virtual ~aaa();

int (aaa::*pfunc)( int);

static int fff(int);

};