- 1、本文档共78页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
模块9 类与对象 主要内容 1 从结构到类 2 类的成员函数 3 对象成员的引用 4 构造函数 5 析构函数 6 友元 7 引用 1 从结构到类 类是具有相同属性和行为的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,其内部包括属性和行为两个主要部分。 利用类可以实现数据的封装、隐藏、继承与派生。 利用类易于编写大型复杂程序,其模块化程度比C中采用函数更高。 1 从结构到类 类是对象共性特征的抽象,对象的类型称为类,类是对象的模板,对象是类的具体实例; 先声明一个类,再定义对象,类是抽象的,不占用内存,对象是具体的,占用实际的存储空间; 可以看作是一种特殊的构造数据类型,是结构体的扩充形式; 类是数据和对这些数据进行操作的函数的封装体,是包括数据和函数的数据类型; 类的定义包括数据和函数的定义,类中的数据和函数都是类的成员; 在C++中,类用class来构造。 类的声明 //声明结构体类型 struct Student { int num; char name[20] ; char sex; }; //定义2个结构变量 Student stud1,stud2; 类的声明 上述类定义中未限定成员的访问属性,对象stud1的数据和函数都是私有的,数据安全了。但外界不能调用stud1中的函数和功能。 一般将类中的数据隐藏起来,声明为私有的,把成员函数作为对外界的接口,声明为公有的。 公有类型成员 在关键字public后面声明,它们是类与外部的接口,任何外部函数都可以访问公有类型数据和函数。 私有类型成员 在关键字private后面声明,只允许本类中的函数访问,而类外部的任何函数都不能访问。 如果紧跟在类名称的后面声明私有成员,则关键字private可以省略。 保护类型 与private类似,其差别表现在继承与派生时对派生类的影响不同。 数据成员 与一般的变量声明相同,但需要将它放在类的声明体中。 成员函数 在类中说明原形,可以在类外给出函数体实现,并在函数名前使用类名加以限定。也可以直接在类中给出函数体,形成内置成员函数。 允许声明重载函数和带缺省形参值的函数。 类的成员 class Clock { public: void SetTime(int NewH, int NewM, int NewS); void ShowTime(); private: int Hour, Minute, Second; }; void Clock :: SetTime(int NewH, int NewM, int NewS) { Hour=NewH; Minute=NewM; Second=NewS; } void Clock :: ShowTime() { coutHour:Minute:Second; } 类和结构体的异同 1、均为构造类型; 2、结构体用struct、类用class作为标识; 2、结构体中的成员只有数据成员,且访问权限默认为public的; 3、类的成员包括数据和函数,且访问权限可以设置为private、public和protected的; 4、结构没有实现数据封装,数据可以被任何外部函数访问。类实现了数据封装,可以将数据限定为只能被本身的成员函数访问。 定义对象的方法 1、先声明类类型,然后再定义对象: 如 Student stud1,stud2; 在声明类类型之后,定义对象有2种方法: class 类名 对象名; 如 class Student stud1,stud2; 类名 对象名; 如 Student stud1,stud2; 定义对象的方法 例2 定义一个日期类CDate,再创建一个生日对象。 class CDate { int year; int month; int day; public: void SetDate(int,int,int); void ShowDate(); }myBirthday; //同时创建对象myBirthday //或者定义类之后: CDate
文档评论(0)