直接引用
在一个cpp文件中调用另外一个cpp文件, main.cpp与ctool.cpp在同一目录下
main.cpp
#include <iostream> #include "ctool.cpp" int main(int argc, char* argv[]){ say_hello(); return 0; }
ctool.cpp
#include <iostream> void say_hello(){ std::cout << "Hello, from ctool!\n"; }
g++ main.cpp -o ./out/ct ./out/ct Hello, from ctool!
这种方式最简洁,如果项目不大,比如只是写一个小功能,几个文件直接放一个目录,编译一下生成一个执行文件,就可以用了
放入头文件
当文件数几十成百后,为了管理方便,
可以将声明与定义分开,声明部分放入.h头文件,定义部分放入.cpp文件,引入的时候,只引入头文件
这种方式最常用
还有一个重复引用的问题,引入就是把源代码直接拿过来,文件之间相互引用,最终合并的代码就会有大量重复的代码,为解决这一问题,会加上if命名
#ifndef TREE_H #define TREE_H ... ... ... #endif
编译的时候,是编译所有的源码文件,因为头文件已经include到源文件中了,编译器会自动将头文件的内容插入到引用的位置
g++ a.cpp b.cpp -o res
c语言则是
gcc test_list.c list.c -o ./out/ll