首页 > C/C++ > typedef 在类里面定义一个类型时的问题。

typedef 在类里面定义一个类型时的问题。

2012年7月1日 发表评论 阅读评论 1121次阅读    

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 ;
}

Share
分类: C/C++ 标签:
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.

注意: 评论者允许使用'@user空格'的方式将自己的评论通知另外评论者。例如, ABC是本文的评论者之一,则使用'@ABC '(不包括单引号)将会自动将您的评论发送给ABC。使用'@all ',将会将评论发送给之前所有其它评论者。请务必注意user必须和评论者名相匹配(大小写一致)。