条款01:视C++为一个语言联邦)

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

          • C++ 的四个次语言

如何理解C++语言:

最简单的方法就是将C++视为由一个相关语言组成的联邦而非单一的语言.四个次语言组成了C++这门联邦语言

C++ 的四个次语言
  • C : 说到底C++仍是以C为基础区块,语句,预处理器,内置数据类型
  • Object-Oriented C++ :面向对象 , class,封装,继承,多态度,虚函数… 这一部分则是面向对象设计的
  • Template C++ : 这是C++泛型编程的部分,也是大多程序员经验最少的部分
  • STL: STL是个template程序库,但它是非常特殊的一个.它对容器,迭代器,算法以及函数对象的规约有极佳的紧密配合与协调.
记住这四个次语言,当你从某个次语言切换到另一个,搞笑编程守则是要求你去改变策略的
例如:
对于内置(C-like)类型而言pass-by-value通常比pass-by-reference搞笑,但是当你从C part of C++ 
迁移到Object-Oriente C++ (面向对象),由于用户定义的构造函数和析构函数(导致分配内存)的存在,
pass-by-reference-to-const往往更好.
运用Template C++时尤其更如此,以为你甚至都不知道你所处理的对象的类型.
然而一旦跨入STL时,你就会了解,迭代器和函数对象都是在C指针之上塑造额,所以对STL的迭代器和函数对象而言,
旧式的pass-by-value守则再次使用

因此C++并不是一个带有一组守则的一体语言,它是从四个次语言组成的联邦政府,每个次语言都有自己的规约.记住这四个次语言,你就会发现C==将容易理解很多


注:本文都是根据侯捷老师翻译的effective c++ 而写的一些笔记和摘抄的内容

你可能感兴趣的:(effective,C++)