hpp,其实质就是将.cpp的实现代码混入.h头文件当中,定义与实现都包含在同一文件,则该类的调用者只需要include该hpp文件即可,无需再将cpp加入到project中进行编译。而实现代码将直接编译到调用者的obj文件中,不再生成单独的obj,采用hpp将大幅度减少调用 project中的cpp文件数与编译次数,也不用再发布烦人的lib与dll,因此非常适合用来编写公用的开源库。
    hpp的优点不少,但是编写中有以下几点要注意:
1、是Header   Plus   Plus 的简写。
2、与*.h类似,hpp是C++程序头文件 。
3、是VCL专用的头文件,已预编译。
4、是一般模板类的头文件。
5、一般来说,*.h里面只有声明,没有实现,而*.hpp里声明实现都有,后者可以减少.cpp的数量。
6、*.h里面可以有using   namespace   std,而*.hpp里则无。
   
    7、不可包含全局对象和全局函数。
    由于hpp本质上是作为.h被调用者include,所以当hpp文件中存在全局对象或者全局函数,而该hpp被多个调用者include时,将在链接时导致符号重定义错误。要避免这种情况,需要去除全局对象,将全局函数封装为类的静态方法。

.h 与.hpp文件的区别相关推荐

  1. .h与.hpp文件的区别

    c++中的.hpp文件 hpp,其实质就是将.cpp的实现代码混入.h头文件当中,定义与实现都包含在同一文件,则该类的调用者只需要include该hpp文件即可,无需再 将cpp加入到project中 ...

  2. .h 与 .hpp 文件

    hpp,顾名思义等于.h加上.cpp,在boost.Xerces等开源库中频繁出现,偶在机缘巧合之下,学得一招半式,遂记录如下,以供参考学习.     hpp,其实质就是将.cpp的实现代码混入.h头 ...

  3. .h和.c文件的区别到底是什么(精确讲解)

    简单的说其实要理解C文件与头文件(即.h)有什么不同之处,首先需要弄明白编译器的工作过程,一般说来编译器会做以下几个过程:      1.预处理阶段 2.词法与语法分析阶段 3.编译阶段,首先 编译成 ...

  4. string/string.h/cstring头文件的区别摘要

    1. #include <cstring>   //不可以定义string s:可以用到strcpy等函数 using   namespace   std; #include <st ...

  5. 转.h和.cpp文件的区别

    关于头文件和源文件的分别 首先,我们可以将所有东西都放在一个.cpp文件内. 然后编译器就将这个.cpp编译成.obj,obj是什么东西? 就是编译单元了.一个程序,可以由一个编译单元组成, 也可以有 ...

  6. hpp文件和h文件有什么区别

    hpp文件和h文件都是C++中的头文件,它们的作用是用来声明函数.类和变量的.但是它们有一个主要的区别,就是hpp文件中可以包含C++代码,而h文件中不能包含C++代码.通常来说,我们可以将hpp文件 ...

  7. .hpp文件和.h文件的区别

    hpp,顾名思义等于.h加上.cpp,在boost. Xerces等开源库中频繁出现,偶在机缘巧合之下,学得一招半式,遂记录如下,以供参考学习.     hpp,其实质就是将.cpp的实现代码混入.h ...

  8. hpp头文件与h头文件的区别

    hpp,其实质就是将.cpp的实现代码混入.h头文件当中,定义与实现都包含在同一文件,则该类的调用者只需要include该hpp文件即可,无需再将cpp加入到project中进行编译.而实现代码将直接 ...

  9. c++中 .hpp和.h文件的区别

    .hpp文件 本质:将.cpp的实现代码混入.h头文件当中,使定义与实现都在同一文件.对该类的调用只需要include该.hpp文件,不需要将cpp加入编译.实现代表直接编译到调用者的.obj文件中, ...

最新文章

  1. 五点讲述C++智能指针的点点滴滴
  2. 目前最全面深入的Linux设备驱动程序著作
  3. SICP 1.21 1.22 1.23 1.24
  4. Android的MediaPlayer
  5. 机器学习笔记:过拟合和欠拟合
  6. 【纯技术贴】.NETStandard FreeSql v0.0.9 功能预览
  7. 2020年终回顾:时间会回答成长,成长会回答梦想
  8. 放大分析双缓冲类时间计算问题
  9. 获取C#代码执行的时间(精确到毫秒)
  10. mysql数据表备份_MySQL数据库备份之逻辑备份和物理备份概述
  11. GRE经验帖——bbs.gter.net
  12. Dubbo分布式系统架构实战视频教程[基础篇高级篇高可用架构]
  13. ssd变频器说明书_变频器说明书大全
  14. M5000 全谱直读光谱仪
  15. 折合分数的公式计算机,高考分数换算公式(高考分数折合怎么算)
  16. 火狐,Firefox浏览器怎么设置主页
  17. 【Eureka】eureka的搭建注册(新手搭建,大佬见谅)
  18. 2022山东省安全员C证操作证考试题及答案
  19. 类似婚礼纪的Java项目_「婚礼纪」婚礼纪 java面试 - seo实验室
  20. php(magento),magento在本地php7上安装方法

热门文章

  1. Java基础学习总结(14)——Java对象的序列化和反序列化
  2. iOS 模型数组去重复
  3. Topcoder SRM 697题解
  4. Windows7 VMware虚拟机安装Apple Mac OSX v10.7 Lion
  5. 关于ubuntu-12.04.4-server-i386安装的问题
  6. awstats 安装与配置
  7. 多线程编程(9)Barrier
  8. [文摘20071113]十四项心理定律
  9. 写给Lewis的-URL处理几个关键的函数parse_url、parse_str与http_build_query
  10. 当您访问未加密的HTTP网站时,谁能看到您的数据?—Vecloud微云