effective-C++条款01:视C++为一个语言联邦
前言
C++作为一门语言,与其他语言相比C++显得臃肿体积庞大,导致学习成本高,对新手不友好。所以也就有了那句“life’s too short to program in c++”。学习C++就要接受C++之父的那句“我特别讨厌语言的设计者把自己的喜好强加给用户”,这样的结果就是C++不会限制你的想象力。要像最求艺术一样心情去最求技术—致自己。
C++是一个语言联邦,它主要包括四个次语言。
1.C语言
c语言是C++的基础,C++中延续使用C语言中的区块、语句、预处理器、内置数据类型、数组、指针等。
2.Object-Oriented C++
这一部分也是C with Classes所诉求的:classes(包括构造和析构函数)、封装、继承、多态以及虚函数等等,这部分是面向对象设计之古典守则在C++上最直接的运用。
3.Template C++
模板编程是泛型编程的一部分。目前模板编程已经应用在整个C++中。在个人学习中,模板编程在面对大型项目时 ,能够很好的减少工作量,在学习《STL标准库》的时候感触颇深,STL在面试和工作中也是相当重要。由于模板的可重用性和可伸展性可以使得代码变得整洁和高效。
4.STL
标准模板库对容器、迭代器、算法、函数对象的越深有极佳的紧密配合与协调。学习STL库可以到github上有tinySTL项目,实现了STL,适用于初学者学习。