在类型定义中出现了递归:定义这个类型要用到自己。不知道可行。

john 2012-12-31 06:12:37
定义一个新类型,是函数的指针,指针所指示的函数的返回值类型,也是函数的指针,并与这个新类型是一样的。
可有办法办?

再粗糙的解释:如果用两个typedef,大致可写成这样:
typedef A (*B)() ; //定义了类型B , B指向的函数返回值类型是A
typedef B (*A)() ;

请教C++语法语法上可否实现这个递归的定义类型.
...全文
150 点赞 收藏 5
写回复
5 条回复
john 2012年12月31日
看到了一个实际使用的例子. 真是精巧.结贴了.
回复 点赞
Twinsen 2012年12月31日
引用 3 楼 JohnPhan 的回复:
这样是否可以变通的实现: typdef void (*C)();//其实定义一个指针类型就可以 typedef C (*B)() ; //定义了类型B , B指向的函数返回值类型是C ,如果想当A用,用类型强转 typedef B (*A)() ; 在程序中使用类型C当A用的时候,用强类型转换. 应该可以啦.
这个可以。
回复 点赞
john 2012年12月31日
这样是否可以变通的实现: typdef void (*C)();//其实定义一个指针类型就可以 typedef C (*B)() ; //定义了类型B , B指向的函数返回值类型是C ,如果想当A用,用类型强转 typedef B (*A)() ; 在程序中使用类型C当A用的时候,用强类型转换. 应该可以啦.
回复 点赞
hsz871204 2012年12月31日
前一个肯定会报B未定义啊
回复 点赞
Twinsen 2012年12月31日
不行。这样可以: class A { /*...*/ }; typedef A (*B)() ; //定义了类型B , B指向的函数返回值类型是A typedef B (*C)() ;
回复 点赞
发动态
发帖子
C++ 语言
创建于2007-09-28

3.1w+

社区成员

24.8w+

社区内容

C++ 语言相关问题讨论,技术干货分享
社区公告
暂无公告