抽象数据类型

发表于:2007-06-11来源:作者:点击数: 标签:
将数据连同函数捆绑在一起,这一点就允许创建新的类型。这常常被称为封装。 一个已存在的数据类型,例如float,有几个数据块,一个指数,一个尾数和一个符号位。我们能够告诉它:与另一个float 或int 相加,等等。它有属性和行为。 stash 也是一个新数据类型

将数据连同函数捆绑在一起,这一点就允许创建新的类型。这常常被称为封装。

一个已存在的数据类型,例如float,有几个数据块,一个指数,一个尾数和一个符号位。我们能够告诉它:与另一个float 或int 相加,等等。它有属性和行为。

stash 也是一个新数据类型,可以add( )、fetch( )和inflate( )。由说明stash S创建一个stash就像由说明float f 创建一个float 一样。一个stash 也有属性和行为,甚至它的活动就像一个实数—一个内建的数据类型。我们称stas h为抽象数据类型(abstract dada type),也许这是因为它能允许我们从问题空间把概念抽象到解空间。另外,C++编译器把它看作一个新的数据类型,并且如果说一个函数需要一个stash,编译器就确保传递了一个stash 给这个函数。对抽象数据类型(有时称为用户定义类型)的类型检查就像对内建类型的类型检查一样严格。

然而,我们会看到在对象上完成运算的方法有所不同。object.member_function(arglist)是对一个对象“调用一个成员函数”。而在面向对象的用法中,也称之为“向一个对象发送消息”。这样,对于stash S,语句S.add(&i)“发送消息给S”,也就是说,“对自己add( )”。事实上,面向对象程序设计可以总结为一句话,“向对象发送消息”。需要做的所有事情就是创建一束对象并且给它们发送消息。当然,问题是勾画出我们的对象和消息是什么,但如果完成了这些,C++ 的实现就直截了当了。



原文转自:http://www.ltesting.net

...