Effective C++ 学习笔记——条款01:视C++为一个语言联邦

Effective C++ 学习笔记——条款01:视C++为一个语言联邦

C++ 是个多重泛型编程语言(multiparadigm pogramming language),一个同时支持过程形式(procedural)、面向对象形式(object-oriented)、函数形式(functional)、泛型形式(generic)、元编程形式(metaprogramming)的语言。

C++主要包含内容(次语言):

  1. C
    C++是以C为基础的编程语言,区块(block)、语句(statements)、预处理器(preprocessor)、指针(pointers)等均来源于C。
    但C语言的局限在于:没有模板(templates)、没有异常(exceptions)、没有重载(overloading)等均来源于C。
  2. Object-Oriented C++。
    包括:类(class)、构造与析构函数(ctor/dtor)、封装(encapsulation)、继承(inheritance)、多态(polymorphism)、虚函数(virtual)等均来源于C。
    该部分是面向对象设计之古典守则在C++上最直接的实施。
  3. Template C++。
    泛型编程(generic programming)是C++较难的一部分,也是大多程序员经验不足的地方(我就从来没用过…)。
  4. STL。
    STL是一个template程序库

例如:
在C中,一般使用值传递(Pass by value);
在面向对象的C++和模板C++中,使用常量引用传递(Pass by const reference)更加高效;
对于STL,因为迭代器是基于指针构造而成,直接使用值传递即可。

在不同的"子语言"中需要你用不同的策略,而非自始至终单一的方法,记住这一点对于理解学习C++这样功能强大的语言十分有帮助。

你可能感兴趣的:(Effective,C++学习笔记,c++)