文档详情

第5章类与对象.doc

发布:2017-02-07约1.93万字共34页下载文档
文本预览下载声明
第 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.h struct 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.h struct 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.h struct weather { double temp ; double wind ; } yesterday ; void main() { weather today ; // 声明同类型变量  yesterday.temp = 10.5 ;  yesterday.wind = 3.1 ;  today = yesterday ; // 结
显示全部
相似文档