文档介绍:一、面向对象和面向过程的比较
面向过程的方法将数据结构和过程作为两个实体来对待,其着重点在过程,设计人员首先考虑如何将功能分解,在每一个过程中又要着重安排程序的操作序列,但同时程序员在编程时又必须时时考虑数据结构,因为毕竟操作要作用于数据上。数据结构和过程的分离,给程序设计人员造成沉重的负担。例如,不可能要求数据结构始终没有变化,且不说在软件维护期间数据结构有可能发生变化,就是在软件的开发过程中也不能保证数据结构不发生变化。面向过程程序设计的缺点之一,就是一旦数据结构需要变更时,必须修改与之相关的所有模块。
面向对象的方法将一组数据和与之有关的操作集合组装在一起,形成一个能动的实体,也就是数据的表示方式与对数据的操作细节被隐藏起来,用户通过操作接口对数据进行操作。即通过数据封装把数据和有关的操作封装在对象中,即使数据结构需要变更,也只要在该对象内部进行,只要该对象的对外接口不变,就不会影响整个软件。再通过派生和多态性机制就解决了面向过程程序的可重用性差、维护代价高等问题。
二、C++与面向对象有关的保留字
C++ 中专用于面向对象程序设计的关键字及它们的功能如下表所示:
关键字功能
catch 捕获异常(错误)
class 定义类
delete 回收动态分配的内存
friend 定义友元类或友元函数
inline 定义内联函数
new 动态分配内存空间
operator 定义重载运算符函数
private 说明私有成员
Protected 说明保护成员
Public 说明公有成员
Template 定义、说明模板
this 指向当前对象的系统指针
throw 引发程序异常
Try 检测程序异常
Virtual 标记虚拟类和虚拟函数
三、一些语法项在传统C语言和C++语言中的功能对比
语法项功能
传统C语言 C++ 语言
标识符长度有限长度无限,由系统决定
基本数据类型无长双精度类型有长双精度类型*
有长双精度类型* 注释方式/* */ /* */ 或// 行尾
作用域限定符:: 无有**
类型名系统提供的标准类型名自定义结构类型可作类型名**
无名联合不允许出现允许出现,以成员名调用
局部变量说明在程序块前单独说明可出现在程序中的任意处
强制类型转换(类型)变量名(类型)变量名和类型(变量名)
指向void的指针字符指针普通无数值指针类型
输入/输出 scanf/printf cin>>/cout<<
定义常量#define const
函数原型整型函数可先调用后定义任何函数必须先声明原型,然后才能调用,除非已先定义了函数返回类型主函数和整型函数可不给出返回类型任何函数必须给出返回类型,主函数也必须如此。
内联函数带参宏定义由前缀inline定义
重载函数被认为是重复定义函数可重载成同名函数
带缺省值函数不允许参数可带缺省值
动态空间分配 free,malloc或calloc new,delete
引用不允许允许使用* 长型双精度浮点数,即long double型数据。该类型的双精度浮点数在内存中占用十个字节,数值范围
在 -4932~+4932之间,其值的有效位数为十九位。当定义或说明长型双精度浮点数时,其后面必须缀以‘L’或‘l’。