C++代码组织的艺术
1 引言
C++之所以如此受欢迎的原因之一可能是它能够很好地服务于小型、大型以及大规模项目。你可以为一个小原型或研究项目编写几个类,随着项目的增长和人员的增加,C++将允许你将应用程序划分为具有不同程度独立性的模块。权衡是,你必须花时间进行一些手动重组(添加命名空间、重新排列头文件的物理位置等)。通常这还是值得的,因为你能够让应用程序模块化,并让不同的人专注于他们的逻辑、功能区域。
你沿途需要投入的手工劳动与你最初花在设计模块化上的时间成反比。从一些优秀的模块化技术开始,你的代码库将会扩展。如果你还没有使用命名空间,你可能至少听说过它们,而且很可能你已经在使用了: std
命名空间,它包含了标准库。根据我的经验,命名空间的使用频率并不像它们应有的那么高,但这并不是因为它们复杂或者使用它们需要很多努力。
2 使用命名空间避免名称冲突
2.1 命名空间简介
命名空间是C++中用来避免名称冲突的一种机制。通过使用命名空间,你可以将代码分组,使得不同模块之间的名称不会相互干扰。例如,如果你有两个不同的类都叫做 Logger
,但它们分别位于不同的命名空间中,那么这两个类就不会冲突。