读书人

类中函数指针作函数参数的有关问题

发布时间: 2012-02-08 19:52:21 作者: rapoo

类中函数指针作函数参数的问题
//代码

class X{
typedef void(X::*func)(int);

private:
int data;

public:
//构造函数
X(){data = 100; };

//用函数指针作参数的函数
void test(func pt_func , int num )
{(this-> *pt_func)( num ); };

//函数指针所指的函数
void out_put( int num)
{ cout < < "out_put X.data " < <num < <endl; };

//调用有函数指针参数的函数
void call()
{test( out_put, data ); };

};

//主函数
int main(int argc, char *argv[])
{

X x;
x.call();

system( "PAUSE ");
return 0;
}

//编译错误:
no matching function for call to `X::test( <unknown type> , int&) '

//为什么是unknown type?谢谢

[解决办法]
test( &out_put, data );
test( &X::out_put, data );
[解决办法]
class X
{
public:
....................
void call()
{test( &X::out_put, data ); }

};

读书人网 >C++

热点推荐