Effective C++ 条款01解读: 视C++为一个语言联邦

来源:互联网 发布:淘宝店铺代运营广告 编辑:程序博客网 时间:2024/05/21 20:29

        我在C/C++语言社区中混迹过一段时间, 发现有一种不太好的现象: 某些C程序员看不起C++, 以显得自己很牛逼。 当然, 一些人尝到C++的甜头后, 又看不起C.  其实, 何必这样呢? 任何语言都有自己的用武之地。 比如, 在图像处理领域, C语言确实让人不敢恭维, 但在嵌入式领域, matlab又能算什么东西呢?


       C++最初还是从C语言发展来的, 随着C++的慢慢发展, 它逐渐变得更加强大, 不再拘泥于C的那一套了, 如今的C++已经演变为一个多范式的语言了, 下面, 我们来分别了解一下。


       一. 面向过程

       C++的面向过程实际上是从C语言中带过来的,但增加了默认参数, 重载, inline, 引用等。仅仅从这一条来讲, 可以大致认为C是C++的一个子集。说白了, 还是函数式的。


       二. 基于对象

       在基于对象的C++中, 有对象, 有类, 有继承。 一些从C语言走过来的人, 喜欢在这一层打转, 体验到了继承的快感。


       三. 面向对象

       在《C++编程思想》的第一卷中, 循循善诱的作者Bruce Eckel说: 别犯傻了, 别停在基于对象的层面。 其实, 意思就是说, 既然来看对象了, 那怎能不看看这么漂亮的对象呢? 所以, 要面向对象, 直面对象, 脸不要红。 C++面向对象的意思就是说:同一消息, 触发不同操作。 当然, 这些是通过虚函数来实现的。


       四. 泛型编程

       大家常常挂载嘴边的模板, 实际上就是泛型编程。 STL中的很多容器(比如vector)其实就是一种类模板。 当然, 函数也是可以有函数模板的。


       五. 基于组件

       要是把微软的COM给硬拽进来, 那就权当算基于组件的编程吧。



       当然, 在Effective C++中, Scott Meyers大师并不完全是这么讲的。 不过, 我认为大同小异。 


       C++不是一门纯粹的语言, 所以, 我们也不用太纠结太较真, 该用啥就用啥。


       生活本来就是这样的, 是哪个季节, 就该做这个季节的事情,别太纠结。好了, 马上洗漱睡觉了。 明天周一, 开开心心, 认真工作。





0 0
原创粉丝点击