前言
在C++中,你可以将代码分割成多个文件来提高可维护性和组织性。分割文件有助于将代码模块化,使大型项目更易于管理。以下是C++中关于分文件的一些规则和概念:
理论知识
头文件(Header Files): 头文件通常具有 .h 或 .hpp 的扩展名。它们包含声明(例如类、函数和变量的声明),供其他文件在编译时引用。头文件应该包含防范重复包含的预处理指令,例如头文件保护宏(#ifndef、#define、#endif 预处理指令)来防止重复包含。头文件只应该包含声明,不应该包含实现。
源文件(Source Files): 源文件包含实现,通常具有 .cpp 的扩展名。这里是实际代码的地方,包括函数和类的实现。源文件包含头文件并提供实现细节。每个源文件都可以被独立编译成一个目标文件。
编译单元(Compilation Units): 一个编译单元是一个包含源文件和其相关的头文件的逻辑单元。在大多数情况下,一个编译单元对应一个源文件。编译单元被独立编译成一个目标文件,然后在链接阶段组合在一起。
命名空间(Namespaces): 命名空间是用来避免命名冲突的机制。通过将相关的类、函数等放在一个命名空间中,可以确保它们的名称不会与其他地方的名称冲突。
链接器(Linker): 在编译后,编译器生成了多个目标文件。链接器负责将这些目标文件合并成最终的可执行程序。链接器解决符号引用,将不同编译单元中的符号关联起来。
分离式编译(Separate Compilation): C++ 支持分离式编译,这意味着你可以将程序分成多个源文件,每个文件可以独立编译。这样,当你修改一个源文件时,只需要重新编译它,而不必重新编译整个项目。
实践
这是我的 c++ 目录
我想要在 hello.cpp 文件下使用 swap.cpp 下的函数
fun.h 文件
#include<iostream>
using namespace std;
// 函数的声明
void fun(void);
swap.cpp 文件
#include"fun.h"
void fun(void)
{
cout << "啦啦啦啦" << endl;
}
hello.cpp 文件
#include<iostream>
#include<string>
using namespace std;
#include"fun.h"
int main()
{
fun();
return 0;
}