C++头文件(xxx.h)与源文件(xxx.cpp)的关系

头文件是不能被编译的:

        “#include”为编译预处理指令,其作用:源文件(xxx.cpp)中的#include "xxx.h"指令将xxx.h 中的代码在编译前添加到xxx.cpp的头部;

每个xxx.cpp文件都会被编译成一个.obj文件,将所有的.obj文件链接起来就可以生成可执行文件(.exe);

        注意事项:严格区别语句和定义语句:在头文件(xxx.h)中只处理常量、变量、函数以及类等的声明;在源文件(xxx.cpp)中进行变量的定义、函数的实现(除了在x.h文件中可以定义const/static对象、内联函数(inline)、结构体(struct)、类(class)、枚举型(enum),其他类型都不能在x.h文件中定义);

        在源文件(xxx.cpp)中引用头文件(xxx.h)时,一定排在本头文件(xxx.h)里面会用到的其他头文件内容的头文件后面; 例如:在头文件(xx.h)里面用到了#include 的内容,在源文件(xx.cpp)里面应该先#include 然后#include

关于头文件(xxx.h)和源文件(xxx.cpp)具有同样的文件名的情况:

        写成同名对于编译器来讲是没有任何意义的,编译器只认#include语句,命名同名是一种约定俗称的编程风格,便于程序员阅读与查找;

源文件(xx.cpp)与源文件(xxx cpp)的关系:

       在头文件(xx.h)中包含的编译预处理指令(#include xxx)和命名的空间(using namespace xxx),只适用于包含了其头文件(xx.h)的源文件(.cpp:不只是xx.cpp文件还有其他命名的源文件)中,不适用于同一工程下,但不包含其头文件(xx.h)的源文件(xxx.cpp)中;

你可能感兴趣的:(c++,算法,c++,开发语言)