回答:文件确实非常多呀,我目前也没见过这么多文件的;C++采用的是编译的方式,会对文件进行编译,然后别的文件在使用到该文件的地方进行引入;只需要保证文件的组织方式不出现问题,即在引入的地方在编译时该模块已经被提前编译好,能够引入即可;可以参考这篇文章,介绍了简单的编译过程:https://zhuanlan.zhihu.com/p/45402323
当然,会有一些地方采用的是动态加载的方式,即在方法被调用的时候才会真正进行加载,这个在C++模板语法里面有涉及到;具体的加载流程我也没研究过。
项目中通过包含头文件的方式找到函数入口,然后经过main函数 通过函数调用来实现各个文件之间的函数功能。 程序的入口是main函数,然后经过函数接口调用,通过.h头文件找到其他文件中的函数接口
这种有多个不同的view组成的界面通常需要一个统一的调度页面(好像是叫MDIView);在这个调度页面下可以打开各个子View,使某个View具有主焦点,同时可以在各个子View之间传递数据、消息、控制。
首先头文件存储的是函数的声明,源文件存储的是函数的实现,编译器编译时会将#include展开,也就是把头文件的所有声明嵌入进源文件中。生成可执行文件可以分为两个部分——编译和链接,编译时会检查语法,会检查函数是否有没有声明,以及传参是否正确,至于该函数有没有被实现编译阶段是不管的,编译完成后会生成.o文件。链接时会将多个.o文件链接起来生成一个可执行文件,会根据函数的声明去找函数的实现。
分文件只是为了方便开发人员维护。处理文件间关系的是编译器,需要了解编译器工作的基本原理,才能知道编译器如何处理这些文件的,但这些并不重要,通常目录中 的 makefile\cmake 文件约定编译器要如何处理这些关系,我们只需了解如何使用 makefile\cmake文件就可以了。