条款一:视c++为一个语言联邦

为什么

在使用c++的时候我们可能遇过这种情况:有很多的语言特性,并且这些语言特性的设计原则还很矛盾,比如我们在利用c语言的习惯的时候,传参往往都是pass by value 但是在使用面向对象的时候,往往是pass by reference,

在面向对象的时候显示接口是王道,但是在template c++中,隐式调用是模版编程的基石。

此条款帮我们解释这些都是因为什么

是什么

答案很简单,因为c++从本质上来说并不是一种语言,所以上述现象并不奇怪

具体来说分为四类

1 c的部分,c++最开始是从c发展而来,没有模版,没有异常,没有重载等等

2 面向对象的部分,继承,封装,多态等等

3 template c++,例如模版元编程等等

4 stl ,迭代器,类函数对象,容器,算法。。