- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第 5 章 类与对象
【本章目标】
·结构类型用struct定义,是用户自定义数据类型,由不同类型的数据成员组成。结构变量在内存占有一片连续的存储区间。结构变量成员用圆点运算符和箭头运算符访问。 ·链表是一种重要的动态数据结构。动态数据的组织特点是可以在程序运行时创建或撤消数据元素。为了描述动态数据结构中元素之间的关系,数据元素类型定义必须包含表示数据关系的指针。我们详细讨论了最简单的动态数据结构——单向链表的操作。 ·类类型是结构类型的拓展,通常用关键字class定义。类是数据成员和成员函数的封装。类的实例称为对象。 ·数据成员是类的属性,可以为各种合法的C++类型,包括类类型。 ·成员函数用于操作类的数据或在对象之间发送消息。 ·类成员由private, protected, public决定访问特性。public成员集称为类的接口。不能在类的外部访问private成员。 ·构造函数是特殊的成员函数,在创建和初始化对象时自动调用。析构函数则在对象作用域结束时自动调用。 ·重载构造函数和复制构造函数提供了创建对象的不同初始化方式。当一个对象拥有的资源是由指针指示的堆时,必须定义深复制方式的复制构造函数。 ·静态成员是局部于类的成员,它提供一种同类对象的共享机制。静态数据成员在编译时建立并初始化存储空间。静态数据成员和静态成员函数依赖于类而使用,与是否建立对象无关。 ·友员是类对象操作的一种辅助手段。一个类的友员可以访问该类各种性质的成员。 ·从编译器的观点看,类是一个程序包。定义什么类成员和如何声明成员的访问性质,取决于问题的需要。
【教学内容】
目录 TOC \o 1-3 \h \z \u
HYPERLINK \l _Toc212964846 5.1 结构 PAGEREF _Toc212964846 \h 2
HYPERLINK \l _Toc212964847 5.2 类与对象 PAGEREF _Toc212964847 \h 14
HYPERLINK \l _Toc212964848 5.3 构造函数和析构函数 PAGEREF _Toc212964848 \h 17
HYPERLINK \l _Toc212964849 5.4 静态成员 PAGEREF _Toc212964849 \h 27
HYPERLINK \l _Toc212964850 5.5 友员 PAGEREF _Toc212964850 \h 31
5.1 结构
HYPERLINK /library/default.asp?url=/library/en-us/vclang98/html/_pluslang_literals.asp \t _blank 结构由数目固定的成员,各成员可以具有不同的数据类型。
5.1.1 定义结构和访问结构
1.定义结构结构类型以关键字struct标识,结构说明语句形式为: struct 标识符 {? 类型 成员1 ; 类型 成员2 ; … 类型 成员n ; ? } ; 例如,定义职工档案的结构类型: struct Employee1 { char name[10] ; ? long code ; ? double salary ; ? char *address ; ? char phone[20] ; } ; 2.访问结构对结构变量成员访问用圆点运算符: 结构变量名 . 成员
【 HYPERLINK 81/Courses/course_10/chapter05/lc0101.html 例5-1】访问结构变量。
#includeiostream.hstruct weather // 声明结构类型{ double temp ; double wind ; } ; void main(){ weather today ; // 声明结构类型变量 today.temp = 10.5 ; // 对结构变量成员赋值 today.wind = 3.1 ; cout Temp= today.temp endl ; // 按成员输出 cout Wind= today.wind endl ; }
如果用指针访问结构,访问形式为: ? *(指针). 成员? 或 指针 - 成员
【 HYPERLINK 81/Courses/course_10/chapter05/lc0102.html 例5-2】用指针访问结构。
#includeiostream.h#includestring.hstr
文档评论(0)