问题:A.cpp 中有fun_A(), B.cpp中如何调用fun_A()
环境:Win7, VC++ 2010
unavailable solution:
A.cpp 声明且定义fun_A();
B.cpp 中包含A.cpp (include"A.cpp")
调用失败!
solution 1:
A.cpp 声明且定义fun_A();
B.cpp 中写“extern [type] fun_A();”即可调用fun_A()
solution 2:
A.h 声明fun_A();
A.cpp 定义fun_A();
B.cpp 中包含A.h (include"A.h"),即可调用fun_A()
solution 3:
A.h 声明且定义fun_A();
B.cpp 中包含A.h (include"A.h"),即可调用fun_A()
总结:
solution 2较优,A.h只声明函数,会显得比较简洁。而且调用时只需要包含此A.h文件,比较简单。
solution 1在需要调用多个函数时,在B.cpp中要给这些函数声明为全局变量(extern),破坏简洁。
solution 3会使A.h看起来很繁杂。
总之,建议用solution 2,调用方式简单,函数的声明跟定义分开管理也很简洁,方便代码维护。