Effective C++读书笔记(条款01:视C++为一个语言联邦)

一开始,C++只是C加上一些面向对象的特性,C++最开始的名称C with Classes也反映了这个关系。

随着语言的成熟,C++开始接受不同于C with Classes的各种观念、特性和编程战略。Exceptions(异常)对函数的结构化带来不同的做法,templates(模板)将我们带到了新的设计思考方式,STL则定义了一个前所未有的伸展性做法。

现在的C++已经是一个多重范型的编程语言,同时支持过程形式,面向对象形式,函数形式,泛型形式,元编程形式。

要理解C++,最简单的方法是将C++视为一个由相关语言组成的联邦而非单一语言。C++的主要次语言有4个:

1. C语言:C++以C语言为基础。区块,语句,预处理器,内置数据类型,数组(arrays),指针 都来自C。C语言的局限在于:没有模板、异常和重载。

2. 面向对象的C++:包括了类、封装,继承,多态,虚函数等等。

3. 模板C++:这是C++的泛型编程部分。

4. STL :STL是一个模板程序库,对容器,迭代器,算法以及函数对象的规划有极佳的紧密配合与规划。

当我们从某个次语言切换到另外一个,可能需要改变“高效编程守则”。例如:对内置类型而言,值传递通常比引用传递高效,但当我们从C part of C++移向面向对象的C++部分时,由于用户自定义构造函数和析构函数的存在,用引用传递往往更好。

请记住:

C++高效编程守则视状况而变化,取决于你使用C++的哪一部分。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值