Home  >  Q&A  >  body text

关于C++语言头文件问题

当类的声明文件中使用模板时,主函数所在文件的头文件引用是

#include"***.cpp"

而当没有使用模板时,头文件引用为

#include"***.h"

其中.cpp和.h分别为类的实现以及声明文件,请问这其中的原理是什么?


高洛峰高洛峰2828 days ago1112

reply all(3)I'll reply

  • 三叔

    三叔2016-11-16 13:31:36

    <p>如果因为有模板,导致声明和定义无法分离,建议使用.hpp作为扩展名,和普通代码.cpp区分开来。因为普通.cpp没有防止重复包含的机制。这些都是为了人分类管理,对于预处理器来说include就是简单地展开那个文件的内容</p>

    reply
    0
  • 欧阳克

    欧阳克2016-11-16 13:31:25

    <p>模板的声明和实现没办法分离,所以要把两者一股脑塞进.cpp文件里</p><p>就语法角度当然也可以选择一股脑放进.h文件里。不过因为.h文件在通常情况下意味着“纯粹”的类声明,所以这种情况下并不是很适合</p><p>对于include指令来说,.cpp文件和.h文件并没有区别,因为include只是把相应文件的内容文本替换到了include所在的位置</p><p>ps:.cpp文件是c++的源代码文件,跟c语言毫无关系</p><p><br/></p>

    reply
    0
  • 三叔

    三叔2016-11-16 13:31:14

    <p>.h 大多数用来些头文件 .cpp用来写具体实现&nbsp;或者你装个vc++ 6.0 创建新文件 里 对文件类型的描述 会不会更清楚一些</p>

    reply
    0
  • Cancelreply