条款一:视C++为一个语言联邦
来源:互联网 发布:ubuntu 16.04 vi使用 编辑:程序博客网 时间:2024/05/14 05:24
语言联邦
C++刚被推出时是C的加强版,加了一些面向对象的特性。最初的名称为C with Classes。随着时代的进步,C++不断发展,有了各种特性。
现在的C++是一个多重范型编程语言(multiparadigm programming language),它支持
支持过程形式
支持面向对象形式
函数形式
泛型形式
元编程形式
这些能力使得c++成为一个无可匹敌的工具。我们可以把c++理解为相关语言组成的联邦而非单一语言。
为了理解C++,必须认识其主要的次语言。
C
C++以C为基础。所以必须先学好C。区块、语句、预处理、内置数据类型、数组、指针都来自于C。当你以C++内的C成分工作时,高效编程守则映射出C语言的局限:没有模板,没有异常,没有重载Object-Oriented C++
这部分是c with classes的重点了:classes、封装、继承、多态、virtual….。这一部分是面向对象设计之古典守则在C++上的最直接实施。Template C++
这个是c++的泛型编程部分。Template的相关考虑与设计已经弥漫了整个c++。由于template过于强大,它们带来了崭新的编程范型,也就是现在火热的template metaprogramming(TMP,模板元编程)。STL
STL是一个template程序库,它是一个非常特殊的模板库。它对容器、爹地阿奇、算法、以及函数对象的规约有极佳的紧密配合与协调,然而templates及程序库也可以其他想法建置出来。
记住这四个次语言非常重要,当你从某个次语言切换到另一个,导致高效编程守则要求你改变策略。例如对内置(也就是C-like)类型而言pass-by-value通常比pass-by-reference高效,但当你从C part of C++移往Object-Oriented C++,由于用户自定义构造函数和析构函数的存在,pass-by-reference-to-const往往更好。运用TemplateC++时尤其如此,因为彼时你甚至不知道所处理的对象的类型。
- effective C++(第三版)读书笔记一——条款一:视C++为一个语言联邦
- 条款一:视C++为一个语言联邦
- [Effective C++] 条款01:视C++为一个语言联邦
- Effective c++ 学习笔记之条款一视C++为一个语言联邦
- 《Effective C++》学习笔记条款01 视C++为一个语言联邦
- 菜鸟读《Effective C++》条款1:视C++为一个语言联邦
- 《Effect C++》学习------条款1 视C++为一个语言联邦
- 条款1 视c++为一个语言联邦(如何理解c++)
- 条款01:视C++为一个语言联邦
- 条款01:视C++为一个语言联邦
- 条款1: 视C++为一个语言联邦
- 条款01:视c++为一个语言联邦
- 条款1:视C++为一个语言联邦。
- 条款1:视C++为一个语言联邦
- effective c++条款1:视C++为一个语言联邦
- 条款01:视C++为一个语言联邦
- 条款01:视C++为一个语言联邦
- 条款1:视C++为一个语言联邦
- 遍历table中的tr td
- Vue.js 表单控件
- 装python2.7和3.5兼容性的问题
- 性能测试场景设计杂谈
- 深入理解Java:注解(Annotation)--注解处理器
- 条款一:视C++为一个语言联邦
- win10安装ocx错误代码0x80040200解决方法
- VMware12安装VMware Tools不成功会出现 /mnt/hgfs下不会出现共享文件夹
- java如何连同目录复制一个文件 部署到服务器的clas文件的工具类
- 讯飞语音 20006 错误,已解决
- python操作Elasticsearch
- Spark framework to mysql
- 初识redis——mac下搭建redis环境
- 使用下拉列表框