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

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

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

请教C++语法语法上可否实现这个递归的定义类型.
...全文
191 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
john 2012-12-31
  • 打赏
  • 举报
回复
看到了一个实际使用的例子. 真是精巧.结贴了.
popy007 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未定义啊
popy007 2012-12-31
  • 打赏
  • 举报
回复
不行。这样可以: class A { /*...*/ }; typedef A (*B)() ; //定义了类型B , B指向的函数返回值类型是A typedef B (*C)() ;

64,642

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧