《高级语言C++程序设计(第一版)-第七章.》.pdf
文本预览下载声明
7.1 设计一个栈(stack)类 173
第七章 类与对象 ( )
类 (class)的概念是面向对象程序设计的核心概念。把数据和对象的操作
和处理封装在一个程序模块中的方法,可以说是人们积几十年程序设计实践的
经验总结。把程序以类的形式组织成若干模块,使其获得了最佳的结构特性,
类的概念的引入使程序设计技术发生了革命性的转变。从结构程序设计 (SP )
中以函数作为程序的基本模块转变为面向对象程序设计 (OOP )中,以类作为
程序的基本模块,这一变化使程序设计技术出现了质的飞跃。
类的概念抓住了程序的本质。程序的基本元素是数据,而函数是围绕数据
进行的处理和操作。抓住了数据这个“纲”,程序中关系复杂的各种函数就变得
脉络清楚,可以随着相应的数据组合成类。类的使用使得:
·程序设计本身更有条理了;
·程序的可读性更好了;
·程序设计的过程真正像是机器部件的组装;
·程序由多个程序员设计变得方便和自然;
·由于程序的零部件化,使得程序的可重用性变成切实可行的事情,等等。
引入了类 (class )和对象 (object)的概念,就使得C++语言与C 语言相
比发生了本质的变化。
class 和object 的概念在C++编程中所起的作用,可以从两个角度来分析。
第一, 从程序的组织角度,C++通过class 把数据以及对这些数据进行处
理和运算的函数封装为互相关联的程序模块,这与C 和Pascal 等语言把程序划
分为具有互相调用关系的函数或过程是不同的。
第二, 从数据类型的角度,C++通过class 引入了抽象数据类型的概念,
一个由数据成员和函数成员组成的类就是一种新的数据类型。C++语言为用户
提供了设计反映不同应用背景特征的千变万化的数据类型的可能性。
在C++程序中,程序员可以根据需要定义多种多样的数据类型:
stack(栈),queue( 队列),set( 集合),Bool(布尔类型),vector( 向量),matrix(矩阵)
等。
其它通用语言可能设置的类型,C++程序员都可以方便地定义。同时与具
体问题密切结合的类型也出现在C++程序中,如:
174 第七章 类与对象
windows( 窗口),menu( 菜单),student( 学生),employee( 雇员),car( 小汽
车),elevator( 电梯), … …
7.1设计一个栈(stack)类
为了学会 OOP 方法,首先让我们看看 C++程序中类及其对象是怎样工作
的。
栈 (stack )是程序设计过程中经常碰到的一种数据结构形式,它对于数据
的存放和操作有下面这样的特点:
⑴ 它只有一个对数据进行存入和取出的端口;
⑵ 后进者先出,即最后被存入的数据将首先被取出。其形式很像一种存储
硬币的小容器,每次只可以从顶端压入一个硬币,而取出也只可从顶端进行,
即后进先出。
这样的数据存储和管理形式在一些实际的程序设计中很有用。例如,编译
系统中(这是一类比较复杂的程序),对于函数调用的处理,对于表达式计算的
处理,都是利用了栈这样的数据结构。下面就是一个关于栈的程序。
//program 7_1.cpp
# includeiostream.h
const int maxsize=6;
enum bool{false,true};
class stack{
float data[maxsize];
int top;
public:
stack(void);
~stack(void);
bool empty(void);
void push(float a);
float pop(void);
};
stack::stack(void){
top=0;
coutstack initialized.endl;
显示全部