C++(谭浩强)笔记(第08章).pdfVIP

  • 4
  • 0
  • 约5.76千字
  • 约 11页
  • 2017-08-21 发布于河南
  • 举报
C(谭浩强)笔记(第08章)

面向对象程序设计基础 一、面向对象的基本概念——类和对象 在数学家眼中,世界是由数字构成的;在哲学家眼中,世界是由物质构成的; 在化学家眼中世界是由元素构成的;在程序员眼中,世界是由对象构成的,即万 物皆对象。客观世界中任何一个事物都可以看成一个对象。总之,对象是构成系 统的基本单位。 每一个人(比如张三)可以看成一个对象,那么张三作为对象时有两个要素: 一个是张三的静态特征,例如姓名、性别、、年龄、身份证号等,这种静态特征 被称为属性;还有一个就是张三的动态特征,例如张三能够“吃喝拉撒”,能够 学习,能够说话……,这些动态特征被称为行为。因此,任何一个对象都应当具 有两个要素:即属性(attribute)和行为(behaviour),对象是由一组属性和一 组行为构成的。 所谓“物以类聚,人以群分”。张三具有的属性和行为李四也有,王五也有……, 所有人都有,于是这些对象构成了一类,这就是人类。因此,一些具有相同属性 和行为的对象就构成了一个类。 可以清楚的看出,类和对象具有以下关系:类代表了一批对象的共性,类是 对象的抽象,而对象是类的具体实例(instance)。类是抽象的,不会占用内存 空间;而对象是具体的会占用存储空间。这正如,人类这个概念不需要住房,但 是每一个具体的人类对象需要住房。 那么现在,我们就可以声明一个类,如图1 所示,在这个类中包含了对象的 属性和行为,然后就可以用它定义若干个同类型的对象。这些对象可以调用类中 的属性和方法,如图2 所示。 图1:类的声明 图2:定义对象 二、类的声明和对象的定义 类类型声明的一般形式如图3 所示, 图3:类类型声明的一般形式 第一行叫类头(class head),后面是类体(class body),类体中写的是类的 成员表(class number list),要列出类的全部成员。Private 和public 是成员 访问限定符,被声明为private 的成员只能在本类中被引用,类外不能调用;被 声明为public 的成员既可以在本类中被引用,也可以在类外被引用。一般情况 下,我们把属性声明为私有成员,把行为声明为公用成员。 对象的定义有三种方法:(1)先声明类类型,再定义对象,如图4 所示;(2) 在声明类类型的同时定义对象,如图5 所示;(3)不出现类名直接定义对象 (不 推荐使用),如图6 所示; 图4:先声明类类型再定义对象 图5:在声明类的同时定义对象 图6:不出现类名直接定义对象 三、Struct 和Class 的区别 C++增加了class 类型后,仍保留了struct 类型,而且还把struct 类型的 功能扩展了,我们也可以用 struct 声明一个类。这二者的主要区别在于,用 struct 声明的类,如果对其成员不做 private 或public 声明,系统将默认为 public;用class 声明的类,如果不做private 或public 声明,系统将默认为 private。 四、类的成员函数 1、成员函数介绍 如果程序中一个函数不是类的成员函数,也不是内联函数,那么这个函数就 是自由函数,也就是在面向过程的程序设计时写的一般的函数。类的成员函数的 写法和用法和自由函数的区别只是:类的成员函数属于一个类的成员,出现在类 体中,它可以被指定为private,public 或protected。类的成员函数是类体中 十分重要的部分。如果一个类不包含成员函数,就等同于C 语言中的结构体了, 体现不出类在面向对象程序设计中的作用。 在使用类函数时,要注意:(1)调用它的权限(它能否被调用),例如,私 有的成员函数只能被本类中的其他成员函数调用,而不能在类外被调用;(2)它 的作用域(函数能使用什么范围中的数据和函数),成员函数可以访问本类中的 任何成员,可以引用在本作用域中有效的数据。习惯上,我们在声明类的时候, 把属性声明为private,把行为(也叫方法)声明为public,但是有的函数并不 是准备被外界调用的,而仅仅是为了被本类中的成员函数调用,这种函数的作用 是支

文档评论(0)

1亿VIP精品文档

相关文档