第5章类与对象..doc
文本预览下载声明
第 5 章 类与对象
【本章目标】
·结构类型用struct定义,是用户自定义数据类型,由不同类型的数据成员组成。结构变量在内存占有一片连续的存储区间。结构变量成员用圆点运算符和箭头运算符访问。 ·链表是一种重要的动态数据结构。动态数据的组织特点是可以在程序运行时创建或撤消数据元素。为了描述动态数据结构中元素之间的关系,数据元素类型定义必须包含表示数据关系的指针。我们详细讨论了最简单的动态数据结构——单向链表的操作。 ·类类型是结构类型的拓展,通常用关键字class定义。类是数据成员和成员函数的封装。类的实例称为对象。 ·数据成员是类的属性,可以为各种合法的C++类型,包括类类型。 ·成员函数用于操作类的数据或在对象之间发送消息。 ·类成员由private, protected, public决定访问特性。public成员集称为类的接口。不能在类的外部访问private成员。 ·构造函数是特殊的成员函数,在创建和初始化对象时自动调用。析构函数则在对象作用域结束时自动调用。 ·重载构造函数和复制构造函数提供了创建对象的不同初始化方式。当一个对象拥有的资源是由指针指示的堆时,必须定义深复制方式的复制构造函数。 ·静态成员是局部于类的成员,它提供一种同类对象的共享机制。静态数据成员在编译时建立并初始化存储空间。静态数据成员和静态成员函数依赖于类而使用,与是否建立对象无关。 ·友员是类对象操作的一种辅助手段。一个类的友员可以访问该类各种性质的成员。 ·从编译器的观点看,类是一个程序包。定义什么类成员和如何声明成员的访问性质,取决于问题的需要。
【教学内容】
目录
5.1 结构 2
5.2 类与对象 14
5.3 构造函数和析构函数 17
5.4 静态成员 27
5.5 友员 31
5.1 结构
结构由数目固定的成员,各成员可以具有不同的数据类型。
5.1.1 定义结构和访问结构
1.定义结构结构类型以关键字struct标识,结构说明语句形式为: struct 标识符 {? 类型 成员1 ; 类型 成员2 ; … 类型 成员n ; ? } ; 例如,定义职工档案的结构类型: struct Employee1 { char name[10] ; ? long code ; ? double salary ; ? char *address ; ? char phone[20] ; } ; 2.访问结构对结构变量成员访问用圆点运算符: 结构变量名 . 成员
【例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 ; }
如果用指针访问结构,访问形式为: ? *(指针). 成员? 或 指针 - 成员
【例5-2】用指针访问结构。
#includeiostream.h#includestring.hstruct person{ char name[20] ; unsigned long id ; float salary ; } ;void main(){ person pr1 ; person *pp ; // 定义结构指针 pp = pr1 ; // 取结构变量地址 strcpy( pp-name, David Marat ) ; // 对结构成员赋值,等价于(*pp).name pp-id = 987654321; // pp-id 等价于(*pp).id pp-salary = 335.0 ; // pp-salary 等价于(*pp).salary cout pp-name \t pp-id \t pp-salary endl ;}
【例5-3】结构变量赋值。
#includeiostream.hstruct weather{ double temp ; double wind ; } yesterday ;void main(){ weather today ; // 声明同类型变量 yesterday.temp = 10.5 ; yesterday.wind = 3.1 ; today
显示全部