【Effective c++ 读书笔记】条款01 视 C++ 为一个语言联邦
2015-06-24 23:22
295 查看
一开始,C++只是 C 加上一些面向对象的特性。C++最初的名称 C with Classes 也反映了这个血缘关系。
但是,现在,当这个语言逐渐成熟,它变得更活跃更无拘束,更大胆冒险,开始接受不同于 C with Classes 的各种观念、特性和编程战略。
今天的 C++ 已经是个多重泛型编程语言,一个同时支持过程形式、面向对象形式、函数形式、泛型形式、元编程形式的语言。
那,我们又该如何理解这样一个语言呢?
最简单的办法是将 C++ 视为一个有相关语言组成的联邦的而非单一语言。
为了理解C++,你必须认识其主要的次语言:
C。说到底 C++ 仍是 以 C 为基础。
区块(blocks)、语句(statements)、预处理器(preprocessor)、内置数据类型(built-in data typpes)、数组(arrays)、指针(pointers)等统统来自 C 。
但是 C 语言也有很多局限:没有模板、没有异常、没有重写。
Object-Oriented C++ 。
这部分包括 classes(构造函数 和 析构函数)、封装(encapsulation)、继承(inheritance)、多态(polymorphism)、virtual 函数(动态绑定)……
Template C++ 。 这是 C++泛型编程的部分。
STL。STL 是个 template 程序库。它对容器(containers)、迭代器(iterators)、算法(algorithms)以及函数对象(function objects)的规约有着极佳的紧密配合与协调。
记住这四个次语言,当你从某个次语言切换到另一个,导致高效编程守则要求你改变策略时,不要感到惊讶。例如:
对内置类型而言 pass-by-value 通常比 pass-by-reference 高效;但当你从 C part of C++ 移往 Object-Oriented C++,由于用户自定义(user-defined)构造函数和析构函数的存在, pass-by-reference 往往更好。
因此,C++ 并不是一个带有一组守则的一体语言;它是从四个次语言组成的联邦政府,每个次语言都有自己的规约。记住这四个次语言你就会发现 C++ 容易了解的多。
但是,现在,当这个语言逐渐成熟,它变得更活跃更无拘束,更大胆冒险,开始接受不同于 C with Classes 的各种观念、特性和编程战略。
今天的 C++ 已经是个多重泛型编程语言,一个同时支持过程形式、面向对象形式、函数形式、泛型形式、元编程形式的语言。
那,我们又该如何理解这样一个语言呢?
最简单的办法是将 C++ 视为一个有相关语言组成的联邦的而非单一语言。
为了理解C++,你必须认识其主要的次语言:
C。说到底 C++ 仍是 以 C 为基础。
区块(blocks)、语句(statements)、预处理器(preprocessor)、内置数据类型(built-in data typpes)、数组(arrays)、指针(pointers)等统统来自 C 。
但是 C 语言也有很多局限:没有模板、没有异常、没有重写。
Object-Oriented C++ 。
这部分包括 classes(构造函数 和 析构函数)、封装(encapsulation)、继承(inheritance)、多态(polymorphism)、virtual 函数(动态绑定)……
Template C++ 。 这是 C++泛型编程的部分。
STL。STL 是个 template 程序库。它对容器(containers)、迭代器(iterators)、算法(algorithms)以及函数对象(function objects)的规约有着极佳的紧密配合与协调。
记住这四个次语言,当你从某个次语言切换到另一个,导致高效编程守则要求你改变策略时,不要感到惊讶。例如:
对内置类型而言 pass-by-value 通常比 pass-by-reference 高效;但当你从 C part of C++ 移往 Object-Oriented C++,由于用户自定义(user-defined)构造函数和析构函数的存在, pass-by-reference 往往更好。
因此,C++ 并不是一个带有一组守则的一体语言;它是从四个次语言组成的联邦政府,每个次语言都有自己的规约。记住这四个次语言你就会发现 C++ 容易了解的多。
相关文章推荐
- C++——try、throw、catch实例学习程序
- C++——windows结构异常转化成C++异常
- C++——STL中三种顺序容器的简要区别
- 【待思考】排序算法——快速排序
- C++——多态性实现机制
- C++ typedef用法小结
- C++杂七杂八
- C/C++——程序的内存分配
- 【学习笔记】【C语言】指针
- [C/C++] const 详解(修饰变量、输入参数、返回值、成员函数)
- 【c++】构造函数调用顺序的研究
- c/c++的函数参数压栈顺序
- c++ --> 虚函数
- C#与C++的相似以及参照java,C++来学习C#
- 排序算法——冒泡排序
- C++入门学习——模板
- #1094 Lost in the City
- C++求两个数的最大值
- c语言Winpcap编程构造并接收解析arp包
- 单链表的简单c++实现