网站大量收购独家精品文档,联系QQ:2885784924

用户自定义类型.PDF

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
用户自定义类型

第2 章 A Tour of C++ 用户自定义类型 不必惊慌失措! ——道格拉斯 ·亚当斯 ● 引言 ● 结构 ● 类 ● 联合 ● 枚举 ● 建议 2.1 引言 我们把用基本类型(见 1.5 节)、 const 修饰符(见 1.7 节)和声明运算符 (见1.8 节) 构造出来的类型称为 内置类型(built-in type )。C++ 语言的内置类型及其操作非常丰富,不 过相对来说更偏重底层编程。这些内置类型的优点是能够直接有效地展现出传统计算机硬 件的特性,但是并不能向程序员提供便于书写高级应用程序的高层特性。为此,C++ 语言在 充分利用内置类型和操作的基础上,提供了一套成熟的抽象机制 (abstraction mechanism ), 程序员可以使用这套机制实现其所需的高层特性。C++ 抽象机制的目的主要是让程序员能 够设计并实现他们自己的数据类型,这些类型具有恰如其分的表现形式和操作,程序员可 以简单优雅地使用它们。为了与内置类型区别开来,我们把利用 C++ 的抽象机制构建的新 类型称为 用户自定义类型 (user-defined type ),诸如类和枚举等。本书的大部分内容都与 用户自定义类型的设计、实现和使用有关,本章的剩余部分将介绍其中最简单也是最基础 的内容。第 4 ~5 章对抽象机制及其支持的编程风格进行了更加详细的描述 。第 6 ~ 13 章 介绍标准库的基本情况,因为标准库主要是由用户自定义类型组成的,所以后面这些章节 也从另一个角度阐述了我们到底能用第 1 ~5 章介绍的语言特性和编程技术完成什么样的 任务。 15 2.2 结构 构建新类型的第一步通常是把所需的元素组织成一种数据结构。下面是一个 struct 的  16 第2 章  示例: 元素的数量 指向元素的指针 这是 Vector 的第一个版本,其中包含一个 int 和一个 double*。 Vector 类型的变量可以通过下述形式进行定义: 仅就 v 本身而言,它的用处似乎不大,因为 v 的 elem 指针并没有指向任何实际的内 容。为了让它变得更有用,我们需要令 v 指向某些元素。例如,我们可以构造一个如下所示 的 Vector: 分配一个数组,它含有s 个double 值 也就是说,v 的 elem 成员被赋予了一个由 new 运算符生成的指针,而 sz成员的值则 是元素的个数。Vector 中的符号 指定我们通过非 const 引用(见 1.8 节)的方式传递 v,这样 vector_init() 就能修改传入其中的向量了。 new 运算符从一块名为 自由存储(free store )(又称为动态内存 (dynamic memory )或 堆 (heap ))的区域中分配内存。分配在自由存储中的对象独立于它所处的作用域,它会一直 “存活”到使用delete 运算符(见 4.2.2 节)销毁它为止。 Vector 的一个简单应用如下所示: 从cin 读入s 个整数,然后返回这些整数的和;其中,假定s 是正的

文档评论(0)

ldj215322 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档