首页 > 代码库 > C++ 我想这样用(六)
C++ 我想这样用(六)
嗯,上一篇已经介绍了面向过程编程的语法知识,接下来是最后的也是最重要的一个部分:
这是本系列的最后一篇,先介绍两个描述:
描述一:C++有四个主流部分:better C,ADT,OO,和GP,以及发展中的functional, generative,meta programming等。Better C, 只增加函数重载、引用类型、缺省参数等简单特性的类C子集。ADT C++,整个程序由平面化的具体类(concrete class)对象构成,无继承,无多态。
描述二:“C++ 三人谈”中看到恶魔曾经指出C++ 的编程范式可以分为ADT+PP,GP,OO三个方向。1、ADT+PP ADT:abstract data type; 抽象数据类型 PP:procedure programme; 面向过程的编程范式 ADT+PP 就是说面向过程的编程范式+抽象数据类型,你可以理解为c++的前身:带类的C。2、(Generic Programming,泛型编程)号称编程思想的又一次革命。是一种基于参数化(parameterization)的编程技巧,目的是将有用的算法或者数据结构尽可能地一般化,并使其最优化。3、OO:面向对象的编程。
以上思想和Essentia C++书上的思想基本一致,也就说明了一个问题:C++是一种多范式的编程语言,不同的程序员用他写出不同范式的程序,没有优劣高下之别。本系列就是上述编程范式中的第一种,你可以把他叫做C with Class也可以叫做C+ADT还可以叫做基于对象,反正意思都是一个。基本的语法组成就是:面向过程语法(就是C语法)+扁平类语法(即只有抽象和封装,没有继承和多态)。
题外话:其实用单纯的C一样可以做到基于对象,而且丝毫没有什么痛感,但是如果你就是喜欢class关键字和“.”操作符带来的快感,那么本“C++ 我想这样用”系列描述的C with Class是你不错的选择。此外,有很多大牛甚至用C实现了泛型,单继承,多态。。。。但是我真心不推荐你使用,一来太另类,没有人力物力支持,二来毕竟是模拟实现的,不仅功能有限,那种蛋疼的感觉也不是一般人能习惯的。选择一门为该范式而生的语言是正统的选择,比如骨子里就是OO的Ruby,天生就是PP的C等等。
C++ 我想这样用(六)