.hpp与.h区别

news/2023/12/1 0:47:41
    最近用Xcode创建新的.cpp文件,结果一下子出现了两个同名不同格式文件,一个.cpp,另一个.hpp,而我原本就需要用到.h格式文件(也可能是.hpp),所以查阅了一些.hpp和.h的资料,毕竟两者看着有些相似,猛一些感觉是近亲关系。

.hpp,本质就是将.cpp的实现代码混入.h头文件当中,定义与实现都包含在同一文件,则该类的调用者只需要include该.hpp文件即可,无需再将cpp加入到project中进行编译。而实现代码将直接编译到调用者的obj文件中,不再生成单独的obj,采用hpp将大幅度减少调用project中的cpp文件数与编译次数,也不用再发布lib与dll文件,因此非常适合用来编写公用的开源库。

hpp的优点不少,但是编写中有以下几点要注意:
1、是Header Plus Plus的简写。(.h和.hpp就如同.c和.cpp似的)
2、与.h类似,.hpp是C++程序头文件格式。
3、是VCL专用的头文件,已预编译。
4、是一般模板类的头文件。
5、一般来说,.h里面只有声明,没有实现,而.hpp里声明实现都有,后者可以减少.cpp的数量。
6、.h里面可以有using namespace std,而.hpp里则无。
7、不可包含全局对象和全局函数。

由于.hpp本质上是作为.h被调用者include的,所以当hpp文件中存在全局对象或者全局函数,而该hpp被多个调用者include时,将在链接时导致符号重定义错误。要避免这种情况,需要去除全局对象,将全局函数封装为类的静态方法。


http://www.ppmy.cn/news/553860.html

相关文章

.h与.hpp文件的区别

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

pssh

批量管理工具-pdsh|pssh 简介 pssh是一个python编写可以在多台服务器上执行命令的工具,同时支持拷贝文件,是同类工具中很出色的,类似pdsh,个人认为相对pdsh更为简便,使用必须在各个服务器上配置好密钥认证访问。 项…

Photoshop Elements2023(64bit)

Photoshop Elements2023 链接:https://pan.baidu.com/s/1Gvra_dIgVF16jI4w428BDw 提取码:8888 Adobe Photoshop Elements是Adobe公司是继Photoshop之后全新推出的图像编辑、照片修饰和 Web 图形解决方案。它界面友好,易于使用&#xff…

.h 与 .hpp 文件

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

Linux ps -A 和 ps -ef

Linux ps (英文全拼:process status)命令用于显示当前进程的状态,类似于 windows 的任务管理器 ps -A | grep xx 显示xx所有的进程 ps -ef | grep xx 显示xx在一个终端的所有进程 注意这里ef 其实可以拆开理解 e 是显示所有进…

三分钟学习一个python小知识5-----------我的对python中pandas的理解, 我列举了关于pandas常用的4个例子来深入理解pandas

这里写目录标题 1、Pandas是什么2、Pandas的常用功能:2.1. 读取和写入数据2.2. 数据清洗和转换2.3. 数据分析和计算2.4. 数据可视化总结 1、Pandas是什么 Pandas是Python中一个非常流行的数据处理和分析库,可以使用它对数据进行读取、清洗、转换、分析和…

自定义Spring Boot Starter

Spring Boot starter 我们知道Spring Boot大大简化了项目初始搭建以及开发过程,而这些都是通过Spring Boot提供的starter来完成的。在实际项目中一些基础模块其本质就是starter,所以我们需要对Spring Boot的starter有一个全面深入的了解,这是…

24结束语:每一位技术人都应该有自己的核心技能

不知道你有没有发现,在很多的网络平台上,“焦虑”似乎成为了一个很常见的词汇,特别是近几年互联网行业的变化,让一部分技术人也心生此感,那么我们应该如何应对这种相对消极的心理,我的答案是:作为技术人,要拥有自己的核心技能。 首先,什么才能叫核心技能? 在我看来…

UOS系统下搭建qtcreator编译环境

文章目录 前言一、依赖包说明二、No valid kits found 问题现象三、No valid kits found 问题解决1.查找qt安装路径2.设置Qt Versions3.构建套件(kit)下选择Qt版本4.重新添加工程 前言 本文记录了在UOS系统下如何安装qtcreator以及涉及的依赖包安装&…

【备战秋招】每日一题:2023.04.12-华为OD机试(第二题)-获取最多食物

为了更好的阅读体检,可以查看我的算法学习网站 在线评测链接:P1190 题目内容 塔子哥设计的这个游戏是一个冒险类游戏,参与者需要在地图上寻找食物并获得尽可能多的食物,同时需要注意在游戏过程中所处的位置,因为不同的位置可以通…

rsarsa

数学很酷!使用RSA算法对秘密消息进行解码,c,p,q,e是RSA算法的参数。 RSA算法还不太了解,经过这段时间的学习,得知 q和p是最开始选择的两个质数,主要是为了计算出钥匙n e是在1到φ(n)…

基于Spring、SpringMVC、JSP的学科竞赛管理系统

文章目录 项目介绍主要功能截图:前台首页参赛学生注册交流研讨后台登录首页管理员账号管理添加新闻栏目新闻栏目管理密码修改部分代码展示设计总结项目获取方式🍅 作者主页:Java韩立 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 …

SwinTransformer细节总结

SwinTransformer可以看成是披着ResNet外壳的vision transformer,swin 就是两个关键词:patch 多尺度。下面结合code来说一些重点的细节: 总览图 这里W-MSA缩写是window-multi head self attention,SW-MSA缩写是shifted window-mu…

用1元,2元,5元,10元,20元和50元的纸币组成100元,共有多少种情况

static void Main(string[] args) { int count 0; //1元组成的情况&#xff0c;最多有100种 for (int a 0; a < 100; a) { //2元的情况&#xff0c;最多有50种可能 for (int b 0; b &…

如果每个老师的工资额都知道,最少需要准备多少张人民币,才能在给每位老师发工资的时候都不用老师找零呢? 这里假设老师的工资都是正整数,单位元,人民币一共有100元、50元、10元、5元、2元和1元六种。

输入数据包含多个测试实例&#xff0c;每个测试实例的第一行是一个整数n&#xff08;n<100&#xff09;&#xff0c;表示老师的人数&#xff0c;然后是n个老师的工资。 n0表示输入的结束&#xff0c;不做处理。 #include <iostream> using namespace std; int main(…

数据库2——简单 单表查询(50)

10-128 A4-4查找产品表中平均订购数大于特定值的产品信息 在产品表(products)中查找平均订购数量大于15的产品信息&#xff0c;显示为&#xff1a;产品编号(ProductID)&#xff0c;和总订货数量&#xff08;重命名为sumUnitsOnOrder&#xff09; select ProductID,sum(UnitsO…

C语言一个100元纸币,C语言求把100元换成20元,10元,5元的纸币.要求每种纸币至少有一张。以及最少张数...

求最少张数&#xff1a; #include #include void main(void) { int n5,n10,n20; int m5,m10,m20; int min,count0 for (n50;n5<20;n5) { for (n100;n10<10;n10) { for (n200;n20<5;n20) { if (n5 * 5 n10 * 10 n20 * 2 0 100) { if(count0) { minn5n20n10; count;…

有若干张一元、五元、十元面值的钞票,要支付十五元有多少种方法?

问题描述&#xff1a; 有若干张一元、五元、十元面值的钞票&#xff0c;要支付十五元有多少种方法&#xff1f; 算法分析&#xff1a; &#xff11;.十元凑十五元最少需要&#xff10;张&#xff0c;最多需要&#xff11;张&#xff1b;   五元凑十五元最少需要&#xff10;…

【题目】有30个人,其中有男人、女人、小孩各若干,在一家饭馆吃饭总共花了50元:每个男人花3元,每个女人花2元,每个小孩花1元,问男人、女人、小孩各有几人?(用最少的代码实现)

文件名&#xff1a;[作业]作者&#xff1a;〈漆黑〉描述&#xff1a;〈 有30个人&#xff0c;其中有男人、女人、小孩各若干&#xff0c;在一家饭馆吃饭总共花了50元&#xff1a;每个男人花3元&#xff0c;每个女人花2元&#xff0c;每个小孩花1元&#xff0c;问男人、女人、小…

苹果app,Touch Album 私密相册强制消费,勒索消费者,一周50元,app降级到1.4.2之前 可解决

该APP经大家群力举报&#xff0c;已经下架了。所以现在这个教程对于还没降级的同志&#xff0c;已经没法用了。因为从Itunes中下载不到这个Touch Album的安装包了。 但是&#xff0c;还存在着一种方法&#xff1a;使用他人&#xff08;A&#xff09;已经下载好的旧版本&#x…
最新文章