关于C++语法的问题

hjd2357 2008-07-23 11:50:43
class A;
typedef A* A_ptr;
class A {

}

第一个问题
我要问的就是第一个【class A;】是什么意思,是声明吗。
我总觉的没有必要,只要把typedef A* A_ptr;
放到下面就应该可以了呀。不用声明了吧
第二个问题:LIUNX下可以编译过吗
...全文
75 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
e_sharp 2008-07-23
  • 打赏
  • 举报
回复
class A; 是声明,为了typedef,所以要先声明,如lz所说,放在下面就不需要声明了。

Linux可以编译通过
shailen126 2008-07-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 akirya 的回复:]
1是声明

2可以
[/Quote]
xkyx_cn 2008-07-23
  • 打赏
  • 举报
回复
1是声明 声明可以出现多次 定义则不行
为什么不把typedef A* A_ptr; 放后面,因为接下来可能要用到A_ptr

Learn-anything 2008-07-23
  • 打赏
  • 举报
回复
都回答完了,就只能看看了
meteormeng 2008-07-23
  • 打赏
  • 举报
回复
你们都好细心啊,搞的我慢了步都没办法回答了.
薛定谔之死猫 2008-07-23
  • 打赏
  • 举报
回复
另,2)是必要的,typedef时class A还没出现
tangshuiling 2008-07-23
  • 打赏
  • 举报
回复
第一问,基本是这么理解的
LINUX下可编译通过,class A{};分号不能少。
薛定谔之死猫 2008-07-23
  • 打赏
  • 举报
回复
1)是声明
2)那样就不能在栈上构建对象了
3)试试看吧
  • 打赏
  • 举报
回复
1是声明

2可以

64,666

社区成员

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

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