C++头文件引入的一种小问题
该博文为原创文章,未经博主同意不得转载,如同意转载请注明博文出处
本文章博客地址:https://cplusplus.blog.csdn.net/article/details/104990815
头文件引入
- 前言
- 细节外露
- 编写代码要时刻谨记以下两个原则,才能从意识上杜绝这类情况。
前言
C++从C继承的基于头文件的类型检查,特别容易出问题,估计每个人都会遇到典型的循环引用的问题。而我最近在几个项目中遇到不少头文件引入不规范的情况,给使用造成了很大的麻烦。最主要的只有一种:就是不管青红皂白,都将依赖的头文件放在.h里include,造成的主要问题就是细节外露。
细节外露
假设有一个TestLibrary的库,.h和.cpp文件如下。可以看到该库实现使用了boost库,所以在.h文件显式引入了相应的头文件,但实际上头文件中TestLibrary的声明完全不依赖boost库,只有.cpp中才用到了boost库。
如
C++头文件引入的一种小问题相关推荐
- C语言头文件深入理解
C语言程序中,源文件通常分为两种:一种用于保存程序的声明(declaration),称为头文件:另一种用于保存程序的实现(implementation),称为定义(definition)文件. C程序 ...
- C++ 头文件使用规范建议
1.背景 拥有良好的编程规范和风格是一名程序员成熟的标志.规范的编码可以减少代码冗余,降低出错率,便于代码管理和代码交流等,事实上,其作用远不止这些,我们要牢记编码规范在心中啊. C++ 具有很多强大 ...
- 头文件防卫式声明/引用/static/extern/
文章目录 1.头文件防卫式声明 2.引用 2.1 引用的本质 2.2 引用与指针的区别(特别的const指针?) 2.3引用传递和引用返回 3.static 3.1 静态局部变量 3.2 全局变量 3 ...
- 头文件和源文件的拼接
头文件引入 如果有几万个人分工合作,如何将每个人的各类文件拼接起来呢? 知识扩展* :C语言后缀名的源文件不能用C++语法 已知:如果在一个源文件内调用另一个源文件的函数,如果没经过声明,是不能调用的 ...
- Qt模块头文件出现下划线问题
头文件出现下划线问题,是因为pro文件中没有添加库如pro中没有添加此语句中的multimedia库,QT+=coreguimultimedia,#include<QMediaPlaylist& ...
- 【C++学习笔记】头文件详解
个人整理学习用,非教材,有错误欢迎指正 头文件 究竟什么是头文件? 首先说明一个概念,所谓的文件后缀并不是必须的,在Linux下这种特点尤为明显.对于编译器来说,无论是.c文件 .cpp文件, ...
- Linux下gcc编译中关于头文件与库文件搜索路径相关问题
如何指定GCC的默认头文件路径 网上偶搜得之,以之为宝:) 原地址:http://blog.chinaunix.net/u/28781/showart.php?id=401631 ========== ...
- 【Android 安装包优化】使用 lib7zr.so 动态库处理压缩文件 ( 拷贝 lib7zr.so 动态库头文件到 Android 工程中 | 配置 CMakeLists.txt 构建脚本 )
文章目录 一.拷贝 p7zip 源码中的头文件到 Android Studio 项目中 二.配置 CMakeLists.txt 构建脚本 1.导入动态库 2.导入头文件 三.完整 CMakeLists ...
- 【Android FFMPEG 开发】Android Studio 工程配置 FFMPEG ( 动态库打包 | 头文件与函数库拷贝 | CMake 脚本配置 )
文章目录 I . FFMPEG 交叉编译后的函数库及头文件 II . FFMPEG 静态库打包动态库 ( 仅做参考 ) III . 创建 Android Studio 工程 IV . FFMPEG 头 ...
最新文章
- python基本概念关系图_Python基本概念
- [老老实实学WCF] 第二篇 配置WCF
- JavaGUI中的JComboBox的处理
- 交付量强劲增长 特斯拉营收却将出现7年来首次下滑
- java深入学习2多线程(面试必备)
- 个人信用报告“数字解读”与妙用
- Android SharedPreferences的简单使用
- ASP.NET中进行消息处理(MSMQ) 一 (转)
- UltraEdit 注册机使用激活方法
- 【Python】断言(assert)
- iPhone12打开webview闪退或者白屏
- mfs java_mfs权威指南
- 你学不好英语,可能是精神内耗太多了
- CSIRO Detects Raw Materials Used in the Ma IoT PLC accessking of the First Stars
- android心跳包作用,Android开发Im总结-5:心跳包
- 美科学家试解“姆潘巴现象”
- 【USACO Open11】forgot
- mvn将本地jar文件导入本地maven库中
- 关于计算机的名言英语作文,适用于英语作文的名人名言
- 性能工具之Taurus使用(入门篇)
热门文章
- mysql 5.6压缩安装_MySQL 5.6 for Windows 解压缩版配置安装
- c语言 误差小于10 -6,上海理工大学C语言2011期中试题和答案
- socket python 收 发 队列 线程_对于Python中socket.listen()与多线程结合的困惑?
- Pycharm中的Debug工具以及简单的使用方法
- VTK:BackgroundTexture背景纹理用法实战
- boost::tokenizer模块相关的测试程序
- boost::sort模块实现spreadsort 字符串函子排序示例
- boost::qvm::deduce_scalar相关的测试程序
- boost::math::barycentric_rational相关用法的测试程序
- boost::iterator_archetypes用法的测试程序