关于include头文件的问题

来源:百度知道 编辑:UC知道 时间:2024/05/25 15:05:54
编了一个单链表结构,共有4个文件。分别是:List.h,ListItr.h,AbsList.h和test.cpp,他们之间如何include?是不是Ainclude了B,B就不需要includeA了?我现在只能把他们全放在一个文件中,可以编译,说明程序没问题。但我想分成4个……否则没意义了。
还有我用的是模板函数,是不是一定要写在一个文件里?编译环境vs08。3个头文件均有互相调用对方的函数。
最后问一下,.h和.cpp有什么区别,好像写在哪里都能编译的样子……

在文件中写一行#include,在编译时,其效果与把被包含的文件的内容整个拷贝到这一行所在的位置是完全相同的,由此可知A include了B,B不仅不用再include A,而且绝对不能再include A,否则等于把源文件长度变得无限长,实际上编译时也会无法通过,因为编译器认为你对字段进行的重复定义。
h是头文件,cpp是执行代码文件,头文件中一般只做定义和声明,比如声明一个函数或类,却并不实际记录这个函数的代码,只是在编译时事先向编译器通告程序中会使用这样一个函数,当遇到这个字符串应该被解释成一个函数。这个函数的具体代码则由一个cpp文件实际的记录。