CC++ 代码规范之“头文件布局”

CC++ 代码规范之“头文件布局”,第1张

摘要

  这篇文章源于一个新需求,当时要用到别的类,按正常逻辑 直接#include进来编译时直接报了一堆的错误。查资料各种说法都有,有说头文件包含顺序不对,还有说头文件重复包含等。按网上教程一一尝试过还是无法解决。

  静下心来好好分析vs报的错误信息,第一条错误定位的.h头文件有个全局函数,全局函数有个参数的定义没有#include,但是不是报的这个错!尝试包含进去,问题解决。

  排查这个问题耗时5个工时,排查过程中发现一些代码写的不太规范,可能当下看没啥问题,但是后期如果代码、功能复用就可能存在隐患。因此查阅资料整理了一份头文件的模板,以供参考。

模板

#pragma once

/*----------------------------------------------------------------------------
	比当前头文件层级要低一级的头文件.
	例如:
	从继承关系描述:当前头文件是 猫这个类的头文件,这里就写动物类的头文件.
	从组合关系描述:当前头文件是 猫这个类的头文件,这里就写猫爪类的头文件.
----------------------------------------------------------------------------*/

#include "动物.h"
#include "猫爪.h"

/*----------------------------------------------------------------------------
	前向声明.
	当前的头文件中用到一些别的类的定义,而当前的这个头文件又可能被其它文件包含,这时一定要注意.h文件中尽量写类的前向声明,告诉编译器这个类已经有定义,然后在cpp文件里再把用到的.h文件包含进去。
----------------------------------------------------------------------------*/

class 猫的账户类;
#include "包含所有前向声明的头文件"


/*----------------------------------------------------------------------------
	通用的头文件
	在这里包含一些主要实现一些方法的类的头文件,例如:宽字节、多字节转换
	在这里包含一些主要实现一些当前项目核心的类的头文件,重点是 这个头文件包含很少的其他文件,避免重复引用。
----------------------------------------------------------------------------*/

关键

  关键是自己对这个项目的理解程度,对层级的掌握,对各个文件、类、模块的把握。原则是.h文件中 前向声明要 优于直接把其头文件包含进去。包含别的头文件要尽量在cpp文件中完成。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1354033.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-14
下一篇 2022-06-14

发表评论

登录后才能评论

评论列表(0条)

保存