include "*.h" 和 declare class *; 的区别?

刚才遇到个很奇怪的问题,到现在还没想明白,来这里记录一下。

在A.h中定义了一个类ClassA,然后在B.h中有使用这个类。使用方式为:

 

#include "A.h"
Class B {
  void foo(ClassA* A);
};
然后编译的时候居然告诉我不认识ClassA这货。搞的我上下折腾了好久。

 


后来居然在B.h中添加了ClassA的声明: 

 

ClassA;

就好了。

 


到现在还是百思不解。

按理说应该是 #include 的功能比 Declaration 的功能强才对啊。

谁路过这里,顺便帮我解释一下~

Tks~


 


 

posted @ 2012-06-25 21:29  Bouygues  阅读(144)  评论(0编辑  收藏  举报