在头文件中看到 这样的 声明 , class Xform; 什么意思?

qzgrmc 2003-09-30 03:06:08
在头文件中看到 这样的 声明 , class Xform;
如果 说是 CLASS的声明,怎么没有 任何CLASS的内容存在?

是否属于 外部类的声明?如果是 怎么不是 extern class Xform?
我知道 class Xform 在别的文件(Xform.H)里有定义和声明,而当前的头文件也 #include "Xform.H",

那为什么还要画蛇添足 加一句: class Xform; 呢?

初学 C++ , 比较迷惑, 请多加指点?谢谢!
...全文
112 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Bandry 2003-09-30
  • 打赏
  • 举报
回复
提前声明
你的这个类肯定有一个这样的变量吧:Xform * m_pXForm;
lemon520 2003-09-30
  • 打赏
  • 举报
回复
前向声明,
如果下文中用到了这个类,则需要这个类的声明!
cgsw12345 2003-09-30
  • 打赏
  • 举报
回复
当然不是画蛇添足,楼上的兄弟也说得很对,你能确定编译器先编译那个类吗,如果在包含一个子类对象的类在子类之前编译,编译就会找不到子类而报错,用上类的申明就不会存在这个问题,因为要用到者作了声明。

--个人观点,不知对否,请教点。
daizh 2003-09-30
  • 打赏
  • 举报
回复
前向声明
RainWindy 2003-09-30
  • 打赏
  • 举报
回复
减少编译时的错误,作用是告诉编译器我现在要用到这个类了,我已经在其它地方告诉你是个什么类了。至于为什么,这样看起来不是很好吗,有什么不好,如果你把它去掉(比如是你自己写的),如果你忘了加头文件(能在头文件里不加其它头文件就不加),而你的系统又很大时,也许你真的不记得,何况这还是一种习惯(如上所说),当然你也可以不加。
积木 2003-09-30
  • 打赏
  • 举报
回复
一个语言有一个语言的风格,也许你现在觉得画蛇添足,以后就不觉得了
习惯就好了,实际上我看JAVA , 它要求包名和文件位置是如此的对应,类名和文件名是要统一的,就觉得这么做没什么必要,不过这个就是规矩,习惯了,还觉得它这么做不错呢。
积木 2003-09-30
  • 打赏
  • 举报
回复
这个叫做前向声明,防止编译的时候出错
豆腐 2003-09-30
  • 打赏
  • 举报
回复
因为下面的可能引用到

64,281

社区成员

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

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