08结构体与类课题.pptVIP

  • 9
  • 0
  • 约2.08万字
  • 约 90页
  • 2017-01-01 发布于湖北
  • 举报
本章主要内容 8.1 结构体 8.2 结构体的属性与方法 8.3 常用预定义结构体类型 8.4 结构体的嵌套* 8.5 类 8.6 运算符重载 8.7 用类实现链表结构 8.8 自定义事件 8.9 接口* 8.10 “值”类型与“引用”类型 8.1 结构体 什么是结构体(Structure)? 结构体是一种自定义复合数据类型, 它由多个成员构成, 每个成员使用已存在的数据类型定义。 例8.1 结构体类型的定义 8.1.1 定义结构体类型 8.1.2 结构体类型变量和数组 8.1.3 常量成员与共享成员 8.1.4 结构体类型的过程参数 8.1.5 函数返回结构体类型值 8.1.6 结构体成员的作用域 8.1.1 定义结构体类型 结构体类型的定义必须在模块级别进行,即不能定义过程级结构体类型。定义结构体类型的语法格式是: 结构体的成员 结构体中的成员可以是变量、常量、数组等数据成员,还可以是Sub、Function、Operator、Property等过程成员。 一个结构体至少要定义一个数据成员。 定义结构体类型时,数组成员不能指定下标界限,只能使用逗号确定维数。在定义结构体类型的变量之后才能使用New关键字创建数组赋给数组成员。所以,结构体的数组成员只记录数组的引用,并不实际存储数组的元素值。 8.1.2 结构体类型变量和数组 (1)结构体类型的变量和数组的定义 与基本数据类型变量和数组的定义相同的语法格式: (2)访问结构体变量或数组元素的成员 访问结构体变量、结构体数组元素的某个数据成员,使用点“.”运算符,类似于访问对象的属性,如下: 结构体变量.数据成员 结构体数组(下标).数据成员 如下形式为其赋值,或使用其值: 结构体变量.数据成员 = 新值 x = 结构体变量.数据成员 结构体变量或数组元素赋值示例 (3)为结构体类型变量或数组元素赋值 为结构体变量赋值有两种方法: 逐个给各个数据成员赋值,前面已介绍过; 使用同类型的变量或数组元素为整个结构体变量赋值,被赋值变量的每个成员的值与赋值变量相应成员的值相同。 结构体变量1 = 结构体变量2 结构体数组元素1 = 结构体数组元素2 结构体数组元素 = 结构体变量 结构体变量 = 结构体数组元素 例如: 结构体数组成员的赋值 8.1.3 常量成员与共享成员 定义结构体类型时使用Const关键字定义常量成员,只能在定义时赋值。 使用Shared关键字定义的是共享的数据成员,同一个结构体类型的不同变量或数组元素共享该数据成员。共享数据成员可在定义时赋值,也可在运行时赋值。 常量成员和共享成员存储在结构体类型定义中,不占用结构体变量或数组元素的存储空间。 既可使用结构体类型名,也可使用结构体变量名或数组元素来访问常量成员和共享成员: 例如: 8.1.4 结构体类型的过程参数 如果过程的形式参数被定义为结构体类型参数或结构体类型的数组参数,则可以通过相应实际参数给该过程传递结构体类型的值。 结构体类型的参数为传递大量的数据提供了方便。 【例8.1-2】结构体类型参数 本例使用【例8.1-1】中定义的StudentType结构体类型,计算实参传递过来的结构体中所有成绩的平均值并返回。 8.1.5 函数返回结构体类型值 定义函数过程时把函数返回值的类型定为该结构体类型。在函数过程体中,定义该结构体类型的变量,给这个变量的各个成员赋值,最后把这个变量的值赋给函数名作为返回值(也可以把函数名当成这种结构体类型的变量,直接给它的各个成员赋值),或由Return语句返回该变量的值。 在父过程中调用函数之前,应该定义一个相同类型的变量,调用函数时,把函数返回值赋给这个变量即可。 【例8.1-3】结构体类型的返回值 本例函数过程MarkMax有一个StudentType结构体类型的数组参数,返回值也是StudentType结构体类型。本函数计算结构体数组保存的所有学生中的平均成绩最高者。 例8.1 的构成 结构体类型的定义 平均值函数过程(结构体作为过程参数); 求最高者函数过程(结构体作为过程参数、返回值); Main过程 结构体数组定义 成员数组创建 结构体赋值(直接赋值、键盘输入) 计算平均成绩 求最高者(也要调用平均成绩计算过程) 8.1.6 结构体成员的作用域 Public关键字修饰的成员无访问限制,可被结构体变量(或数组元素)作用域内任何代码访问,也可被本结构体的过程代码访问。 Private关键字修饰的 成员只能由所在结构 体内部的过程代码访 问,在结构体外部不 能访问该成员。 8.2 结构体的属性与方法 Visual Basic允许为结构体类型定义属性和方法,分别是通过 Property过程、 Sub过程、 Function过程 实现的。 8.2.1 结构体属性的定义 8.

文档评论(0)

1亿VIP精品文档

相关文档