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

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

1. 理解C++

  • 最初的c++只是c语言加上一些面向对象的特性,即C With Classes
  • 现代的C++已经变成了多重范型编程语言(multiparadigm programming language),它同时支持过程形式编程(procedural),面向对象形式(object-oriented) ,函数形式(functional),泛型形式(generic),元编程形式(metaprogramming)。
  • 那么如此多元化的C++,究竟该怎么理解这样的语言呢。最简单的办法就是将C++看作一个语言的联邦,而非单一的一种语言。在这个联邦中,我们称联邦的每个成员为次语言(sublanguage)。每种次语言的守则与通例都倾向简单直观。但是在从一种次语言迁移到另一种次语言时,高效编程的守则通常会要求你改变策略。

2. 联邦中的次语言

1.C

  • 说到底,C++仍以C语言为基石。区块(blocks),语句(statements),预处理器(preprocessor),内置数据类型(built-in data types),数组(arrays),指针(pointers)等等都来自于C语言。但是在使用C++内的C语言成分时,高效编程守则映照出C语言的局限性:没有模版,没有异常,没有重载等等。

2. Object-Oriented C++

  • 这部分也就是C with Classes所诉求的:类(classes),封装(encapsulation),继承(inheritance),多态(polymorphism)等等。

3. Template C++

  • 属于C++泛型编程的部分。

4. STL

  • STL是一个template程序库。其对容器(containers),迭代器(iterators),算法(algorithms),以及函数对象(function objects)的规范有极佳的紧密配合与协调。

3. 总结

  • C++并不是一个带有一组守则的一体语言。它主要是由四个次语言组成的联邦政府,每个次语言都有自己的规范。在此层面上可以更好的理解C++。
  • 谨记:高效编程守则视状况而改变,取决于你使用C++的哪一部分。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

角plusplus

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值