C++项目中,一般在.h文件中声明,在.cpp 文件中定义和实现。每个文件尽量只专注于做一个事情,比如定义一个类,进行封装,对外提供特定功能。
一个大型项目中,只有一个main函数,来接收数据,处理业务逻辑,处理的过程需要借助其他文件中提供的方法,即include。而每个其他文件,也可能include其其他文件实现自己的方法,可以把include想象成,把别人的代码粘贴过来放在自己的代码中。
include 的过程中,最恼人的就是包含的关系,比如A 包含B了,B包含C了,那其实,A 也包含C了,当A中有直接依赖C的时候,A也要包含C,那么相当于A要包含C两次。如果不加以处理,会使得C中定义的数据,在A中被包含2次,就会发生重复定义的问题。使用 #ifdef 或者 #pragma 来解决头文件的重复包含,见下文解释:
https://blog.csdn.net/u014557232/article/details/50354127
在多个源文件中共享变量或函数时,需确保定义和声明的一致性。通常在某个相关的源文件中定义,然后在头文件中进行外部声明。需要使用时包含相应的头文件即可。定义变量的源文件也应包含该头文件,以便编译器检查定义和声明的一致性。(extern 关键字的使用)(引用自:https://www.cnblogs.com/clover-toeic/p/3728026.html)