《Effective c++》阅读笔记二:让自己习惯于C++

         对大多数程序员而言,C++(包括C)很可能是第一门接触的编程语言,高效、规范,优美,一丝不苟但也难以彻底掌握。C++究竟是什么?最简单的是将C++看成是一个由相关语言组成的一个联邦(书中原文,个人觉得用集合或者超集更容易理解)而非单一的语言,可以把这个大的联邦看成由若干次语言组成。在C++中,主要的次语言并不多,主要有以下四个:CObject-OrientedC++TemplateC++STL

        C:说到底,C++仍然以C为基础。区块(blocks)、语句(statement)、预处理器(preprocessor)、内置数据类型(build-in data types)、数组(arrays)、指针(points)等等统统来自C。很多时候C++对一个问题的解法其实不过是较高级的C解法。但是当以C++内的C成分工作时,高效编程守则反映出C语言的局限:没有模板(template),没有异常(exception),没有重载(overloading

        Object-Oriented C++:这也正是C++C的基础上需要的最低诉求:类(class)、封装(encapsulation)、继承(inheritance)、多态(polymorphism)、虚函数(virtualfunction)等等。

        Template C++:这是C++泛型编程的部分,也是大多数程序员经验最少的部分。但实际上,模板的相关考虑已经弥漫整个C++

        STLSTL是个template程序库,但它也是非常特殊的一个。它对容器(containers)、迭代器(iterators)、算法(algorithms)以及函数对象()的规约有着极佳的紧密配合和协调。但STL的存在本身是有争议的,这也是很多C程序员不屑于使用STL的其中一个原因。

这几个方面概括起来无非是说明了C++相较于其他编程语言最具特色的地方。所以或许可以说,C++相较于C除了指针还有面向对象,还有模板,还有标准库。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值