c++ 工程里文件怎样组织?

Organizing Large C Programs虽然是英文,但图多字少,形象生动。
■网友
命名写成main.cpp也就意味着main()在这里面。如果东西不甚复杂,其他全部的东西一股脑全部扔在这一个文件里也是可以的。分成不同的文件是为了把软件分成不同的模块。一般来说.h头文件里写类和函数声明,即所谓“接口”,.c和.cpp里写定义。并不一定一个头文件对应一个cpp文件,他们之间的数量关系是很随意的。要求的只是如果用了声明的东西就要有定义。一个头文件可以对应多个定义文件;也可以用多个头文件定义不同部分的函数,但全部实现在一个.c或者.cpp文件里。如果要发布你的代码,而你想要闭源,一个办法就是只提供头文件,和编译好的静态库文件(.lib,.so之类)。在头文件里只有声明,别人看不到你的实现。而他在自己的代码里引用你声明的函数,只要在链接的时候把静态库加上,这些函数调用就可以顺利使用了。java没这么麻烦,声明定义是一体的,编译完了都是class文件如果开源的话就不太所谓,但是为了接口的整洁(也就是说别人看你的头文件能顺利知道有哪些函数,而不用被细节代码花了眼)尽量保持声明和定义的分离。可以参考《C语言接口与实现:创建可重用软件的技术》这本书,虽然只是说C,但是C++在这个问题上应该也是一样的。


    推荐阅读