Fra*_*era 1 c++ pointers function-pointers class
现在一个类的函数指针到另一个类的函数怎么样?那是我的问题
例:
class Apple
{
int(Apple::*pActionFunc)(void);
};
class Tree
{
Apple* tempy;
void Init( void );
int I_Work( void );
};
void Tree::Init( void )
{
tempy = new Apple( );
tempy->pActionFunc = &Tree::I_Work;
}
int Tree::I_Work( void )
{
"Do Things"
}
Run Code Online (Sandbox Code Playgroud)
那样不行.这是为什么?
这不起作用,因为像所有变量一样,函数指针也有一个类型,你只能使用指向同一类型的指针来存储变量类型的地址.
int(Apple::*pActionFunc)(void);
Run Code Online (Sandbox Code Playgroud)
告诉编译器这pActionFunc是一个指向Apple类成员函数的指针,它void作为参数并返回一个int.
tempy->pActionFunc = &Tree::I_Work;
Run Code Online (Sandbox Code Playgroud)
尝试存储作为类的I_Work()成员的函数的地址,该函数作为输入参数并返回.Treevoidint
如果您注意到它们是不同类的成员函数,那么就是错误.
| 归档时间: |
|
| 查看次数: |
150 次 |
| 最近记录: |