C/C++作为强类型语言,其重要特征就是通过类型检查特别是编译期检查确保其类型安全(最早期的语言和最底层其实是不区分类型的)。
变量和函数都要区分类型(函数通过返回值区分,同时函数的参数也需区分类型)。
C/C++考量到效率和单元测试的需要,使用“分别编译”(separate compilation)和链接的语法机制。
C++ 语言支持“分别编译”(separate compilation)。也就是说,一个程序所有的内容,可以分成不同的部分分别放在不同的 .cpp 文件里。.cpp 文件里的东西都是相对独立的,在编译(compile)时不需要与其他文件互通,只需要在编译成目标文件后再与其他的目标文件做一次链接(link)就行了。比如,在文件 a.cpp 中定义了一个全局函数 "void a(){}",而在文件 b.cpp 中需要调用这个函数。即使这样,文件 a.cpp 和文件 b.cpp 并不需要相互知道对方的存在(b.cpp只需声明一下voida();),而是可以分别地对它们进行编译,编译成目标文件之后再链接,整个程序就可以运行了。