一2类与对象.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一2类与对象

C++程序设计 第2章 类与对象 本章主要内容 结构体与类 类的定义方法 C++类成员的访问属性 类和对象的简单应用举例 构造函数与析构函数 对象指针 一、结构体与类 结构体 struct Student {int num; char name[20]; float score[3]; }; 类成员访问限定符 public的成员:一般是成员函数,用于定义类的外部接口,在程序中的任何部分都可访问。 private的成员:一般是数据成员,用于描述类的属性,它们只能被类自身的成员函数访问,类的成员默认情况下是私有的。 protected的成员:不能被类外访问,但可被派生类的成员函数访问。 注意: 关键字 private public protected的出现顺序是任意的,并且可以不出现或出现多次。但类中的每个成员只能有一种特定的访问属性 §2.2 C++类成员的访问控制 引用方式 (1)对象名.数据成员名 、对象名.成员函数名(参数表) (2) 指向该类对象的指针-成员名 (3)对象的引用.成员名 在C++中,数据封装是通过类来实现的。由于类中成员指定了访问权限,所以程序中其他函数就不能访问对象的私有成员,只能通过公有成员提供接口来访问 类的数据成员可以是类类型,也就是说类的声明中数据成员可以是另一个类的对象,但必须注意以下两点: 这个对象不能是本类的对象。 作为数据成员的对象所属的类,应该在声明这个对象之前进行声明 §2.3类和对象的简单应用举例 [例2.2]求三个长方体的体积。编写一个基于对象的程序,数据成员包括length、width、height。 要求用成员函数实现以下功能: 由键盘分别输入三个长方体的长,宽,高; 计算长方体的体积; 输出长方体的体积; §2.4构造函数与析构函数 一、构造函数 对象的初始化 将确定对象的初始状态,即对其成员的初始值进行确定。 类的数据成员不能在声明类时初始化 如果类中成员全部是public,可在定义对象时对数据成员进行初始化 C++提供了构造函数(constructor)来处理对象的初始化问题 构造函数举例[例2.3] 1、构造函数的定义 构造函数的函数名必须与类名相同。 是一个很特殊的成员函数,因此构造函数需要在类中说明(定义) ; 构造函数没有返回值,也不需在定义时声明函数类型。 构造函数的主要作用是完成对类对象的初始化工作。 构造函数不能由编程人员显式的直接调用。 在构造函数的函数体中不仅可以对数据成员赋初值,而且可以包含其他语句。 在创建一个类的新对象的同时,系统会自动调用该类的构造函数为新对象初始化。 2、带参数的构造函数 采用带参数的构造函数,在调用不同对象的构造函数时,从外面将不同的数据传递给构造函数,以实现不同的初始化。 构造函数首部的一般格式为 构造函数名(类型 1 形参1,类型2 形参2,…) 实参是在定义对象时给出的。 定义对象的一般格式为 类名 对象名(实参1,实参2,…); 带参数的构造函数举例[例2.4] 3、用参数初始化表对数据成员初始化 C++还提供另一种初始化数据成员的方法——参数初始化表来实现对数据成员的初始化。 在原来函数首部的末尾加一个冒号,然后列出参数的初始化表 这种写法方便、简练,尤其当需要初始化的数据成员较多时更显其优越性。 举例[例2.5] 4、构造函数的重载 在一个类中可以定义多个构造函数,以便对类对象提供不同的初始化的方法,供用户选用。这些构造函数具有相同的名字,而参数的个数或参数的类型不相同。这称为构造函数的重载。 说明: 调用构造函数时不必给出实参的构造函数,称为默认构造函数(default constructor)。显然,无参的构造函数属于默认构造函数。一个类只能有一个默认构造函数。 如果在建立对象时选用的是无参构造函数,应注意正确书写定义对象的语句。 尽管在一个类中可以包含多个构造函数,但是对于每一个对象来说,建立对象时只执行其中一个构造函数,并非每个构造函数都被执行。 5、使用默认参数的构造函数 构造函数中参数的值既可以通过实参传递,也可以指定为某些默认值,即如果用户不指定实参值,编译系统就使形参取默认值。 说明: (1) 应该在声明构造函数时指定默认值。 (2) 如果构造函数的全部参数都指定了默认值,则在定义对象时可以给一个或几个实参,也可以不给出实参。 (3) 在一个类中定义了全部是默认参数的构造函数后,不能再定义重载构造函数。 6、构造函数小结 如构造函数带有参数, 在声明对象时,就必须利用实参对对象进行初始化。 如构造函数不带参数,定义对象时不能带括号。 与普通函数一样,构造函数也可

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档