typedef 在类里面定义一个类型时的问题。
class Test
{
public:
typedef int ( func )( void );//定义一个函数指针类型,
int print(void) { return 0 ;} ;//下面的错误中,
//如果把print函数定义为friend 或者static的,就可以了。但是无法满足我的要求
func p ;//声明一个函数指针
void init() {
p = print ;//在这里给函数指针变量p赋值,赋的是本类的print函数地址。
//但是这句总是出错
}
};
int main(){
cout <<"why"<< endl ;
return 0 ;
}
上面有错,改正如下:
1. static int print(void) { return 0 ;} ;//
2. friend int print(void) { return 0 ;} ;//
3. class Test
{
public:
typedef int ( Test::*func )( void );//定义一个函数指针类型,
int print(void) { return 0 ;} ;//下面的错误中,
//如果把print函数定义为friend 或者static的,就可以了。但是无法满足我的要求
func p ;//声明一个函数指针
void init() {
p = print ;//在这里给函数指针变量p赋值,赋的是本类的print函数地址。
//但是这句总是出错
}
};
int main(){
cout <<"why"<< endl ;
return 0 ;
}
近期评论