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

来源:互联网 发布:java经典编程100例 编辑:程序博客网 时间:2024/06/02 19:16

博客转移至:http://kulv.sinaapp.com/?p=28


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

原创粉丝点击