- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
面向对象(西安电子科技大学陈平课件)07级-第3次课,西安交大复变函数课件,多媒体课件的使用对象,面向对象,面向对象的编程思想,面向对象程序设计,面向对象编程,java面向对象,什么是面向对象,c面向对象程序设计
2.2. 程序设计语言中的类型
2.2. 程序设计语言中的类型
用类型和类型系统的观念来看程序设计
用类型和类型系统的观念来看程序设计
l 重申:程序设计的过程,实质上是针对应用的特征,构
造对应程序的类型系统的过程。
l 但是,构造类型系统,不应当简单地理解成将所有的自
定义数据结构冠以类型名称,加上一堆无组织的函数和
过程就行了。因为程序设计语言本身并不能保证自定义
类型的值集与操作集的确定是合理的,也一般不能保证
操作的结果是封闭在值集中的。
68 - 1
2.2. 程序设计语言中的类型
2.2. 程序设计语言中的类型
突出的问题在于类型中操作集的设计
突出的问题在于类型中操作集的设计
l 哪些操作应当属于同一个类型?
l 这些操作中,哪些是关于值集中单个元素的操作,哪些
是关于多个元素的操作?
l 这些操作是否对值集的所有元素是一致的?
l 这些操作中,哪些是在设计该类型时就必须考虑的,哪
些是可以在以后再加入该类型,而又与以前的操作是相
容的?
在面向对象程序设计中,这些是不能回避的问题。
在面向对象程序设计中,这些是不能回避的问题。
68 - 2
2.2. 程序设计语言中的类型
2.2. 程序设计语言中的类型
How? 向程序设计语言学习类型系统的定义方法
How? 向程序设计语言学习类型系统的定义方法
l 任何一个商品化的、哪怕是不起眼的程序设计语言,都
是一个精巧的软件范例,都值得我们认真学习。
l 学习程序设计语言中的类型系统,是因为在面向对象程
序设计中采用的观念是类似的:
l 对于一个类型,在设计时首先考虑的是它应该有什么操作,
而不是现在需要有什么操作。
68 - 3
2.2. 程序设计语言中的类型
2.2. 程序设计语言中的类型
例:C++语言中与类型相关的成分
例:C++语言中与类型相关的成分
l 在用C++语言写的任何一个程序中,所出现的每一个
l 标识符 (Identifier),如变量 (Variables)、常量
(Constants)、函数 (Functions )等,
l 字面值 (Literals ),
l 运算符/操作符 (Operators ),
l 以及以上元素的合法组合,如表达式 (Expressions )等,
都有特定的类型。
l 在一个程序中,每个类型有着不同的名称。
68 - 4
2.2. 程序设计语言中的类型
2.2. 程序设计语言中的类型
程序设计语言中类型的作用
程序设计语言中类型的作用
l 决定变量或常量的合法取值范围 (值集)。
l 决定变量的存储空间的大小。
l 决定合法的 (一般是用运算符或函数表示的)操作的范
围 (操作集)。
l 区分名字相同、类型不同的符号 (变量、函数、运算
符)。
l 决定将一种类型的值能否和如何转换成另一种类型的值。
l 为编译程序提供依据,令其检查出程序中的一部分错误。
68 - 5
2.2. 程序设计语言中的类型
2.2. 程序设计语言中的类型
C++语言中的声明机制
C++语言中的声明机制
l Before a name (identifier) can be used in a C++
program, it must be declared. That is, its type must be
specified to inform the compiler to what kind of entity
t
文档评论(0)