在c++头文件中写#include类的头文件与直接写class加类名有何区别

Posted 木大白易

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在c++头文件中写#include类的头文件与直接写class加类名有何区别相关的知识,希望对你有一定的参考价值。

实例

我们能看到这样的写法:
A.h

#include "C.h"

class B;

class A{
   //...
}

A.cpp

#include "B.h"

class A{
  //...
}

在A类的头文件中使用了#include xx.h,也有声明class xx,那么这两种写法有什么不同?

不同

class 类名只是声明存在这么一个类,但是通过这个声明无法得到任何关于此类的具体信息。这样你可以在其他使用到的地方声明一个该类型的指针。
#include头文件则是将整个该头文件与使用到的地方关联起来。

使用class 类名一般是为了去除编译依赖,减少编译消耗的时间

#include "xx.h"在编译的时候把xx.h文件直接展开,所以里面的接口都能用,可以申明对象。但是class xx;这种方式就不会,你只能使用它的指针或者引用,你不能创建申明对象。

另外需要注意的是:如果我们需要在cpp中具体的类,必须在cpp中引入#include xx.h头文件。

以上是关于在c++头文件中写#include类的头文件与直接写class加类名有何区别的主要内容,如果未能解决你的问题,请参考以下文章

C++头文件

C++库的头文件到底如何包含的?

linux下编写c++,include的那些头文件在啥地方

C++ 类的头文件实现使用

不要在头文件中写函数定义

c++ cout需要包含哪个头文件?