今天打开自己以前写代码突然觉得在man函数中如果要用的很多自己实现的函数,如果把它们都放在main.cpp文件中太臃肿了。调试起来特别不方便。能不能把这些自己实现的函数放到另外一个文件中呢?
可是又不能把这些函数放在.h文件中。因为书上说.h文件中做好只放结构体、类等的申明,函数实现最好放在.cpp文件中。好吧那我就把这些函数放到一个.cpp文件中吧。所以我就新建了一个2.cpp文件把自己实现的函数都放在里面。然后把这个2.cpp文件放在和main.cpp文件的同目录下。在main.cpp中#include"2.cpp".重新编译运行,一切正常。看似成功了。
关掉这个工程后,我再次打开它想修改一下那些自己的实现的函数。突然发现在VC6.0工程Sourcs File目录下只有main.cpp没有2.cpp,于是我点右键添加2.cpp文件到Siurce File目录下。再次编译,出错了。出现了重定义错误。报错如下:
BiTree.obj : error LNK2005: "bool __cdecl CreateBiTree(struct BiTNode * &,char *,int &)" (?CreateBiTree@@YA_NAAPAUBiTNode@@PADAAH@Z) already defined in main.obj
BiTree.obj : error LNK2005: "void __cdecl PreOrderTraverse(struct BiTNode *)" (