C++中为什么一个文件中只包含一个类


如果一个文件包含多个类:

1.修改其中任何一个文件都会导致整个文件进行编译,包括没有被改动的类。

2.若这个文件是头文件,包含了多个类的声明,那么如果改动了一个类的头文件,那么所有包含该头文件的文件都要被重新编译,哪怕依赖的不是被修改的类。

就好像跟我同租一个房子住的人犯了事,我也要跟着进班房。他做了啥跟我完全无关,冤枉吗?

3.导致文件的依赖关系复杂。假设A类和B类的声明都放在一个头文件里,A类又依赖A'文件,B类又依赖B'文件,A'文件又依赖A''文件,B'文件又依赖B''文件,那么一个想要使用A类的文件,它其实依赖的是该头文件+A'+B'+A''+B'',其实它只需要依赖A类的声明+A'+A''就好了。

所以,该你知道的你必须知道的,不该你知道的你千万别知道。否则会因为“你知道的太多”而付出代价。

相关内容