- 1、本文档共48页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章 类和对象 8.1 类和对象 8.2 类对象 8.3 构造函数和析构函数 8.4 类的初始化 8.5 复杂的对象表示 类构成了实现C++面向对象程序设计的基础,在C++语言面向对象程序设计中占据着核心地位。它把数据和作用在这些数据上的操作组合在一起,是封装的基本单元。对象是类的实例,类定义了属于该类的所有对象的共同特性。 8.1 类和对象 从一般意义上讲,对象(Object)是现实世界中的客观事物。类是把具有相同属性的事物划分为一类,从而得出的抽象概念。类是一组性质相同的对象的程序描述,它由概括了一组对象共同性质的数据和函数组成。 面向对象的程序设计中最基本的概念是对象,一般意义上的对象指的是一个实体的实例,在这个实体中包括了特定的数据和对这些数据进行操作的函数。对象的核心概念就是通常所说的“封装性”(encapsulation)、“继承性”(inheritance)和“多态性”(polymorphism)。 8.1.1 类的定义 类是一种用户自定义的数据类型,它的一般定义格式如下: class 类名 { private: 私有数据成员和成员函数; protected: 保护数据成员和成员函数; public: 公有数据成员和成员函数; } 各个成员函数的实现; 其中,class是定义类的关键字。类名是一个标识符,用于惟一标识一个类。一对大括号内是类的说明部分,说明该类的所有成员。类的成员包括数据成员和成员函数两部分。类的成员从访问权限上分有以下三类:公有的(public)、私有的(private)和保护的(protected),其中默认为private权限。说明为公有的成员可以被程序中的任何代码访问;说明为私有的成员只能被类本身的成员函数及友元类的成员函数访问,其他类的成员函数,包括其派生类的成员函数都不能访问它们;说明为保护的成员与私有成员类似,只是除了类本身的成员函数和说明为友元类的成员函数可以访问保护成员外,该类的派生类的成员也可以访问。 例8-1: include iostream.h class Sample { int x,y; public: Sample() {x=y=0;} Sample(int a,int b) {x=a;y=b;} Void disp() { cout”x=”x”,y=”yendl; } }; 8.1.2 类的成员函数 定义类的函数成员的格式如下: 返回类型 类名::成员函数名(参数说明) { ???? 函数体 } 类的成员函数对类的数据成员进行操作,成员函数的定义体可以在类的定义体中,如例8-2所示。 例8-2:类中的成员函数在类定义中直接描述示例。 class Location { public: ??? void init(int x,int y) ??? { ??????? X=x; ??????? Y=y; ??? } 类的成员函数也可以另外定义,而在类定义时给出函数头。 例8-2的成员函数可说明如下: void Location::init(int x,int y) { ??? X=x; ??? Y=y; }//将x,y的值分别赋给X,Y int Location::GetX() { ??? return X; } 一个类的说明可分为定义性说明和引用性说明两种,引用性说明仅说明类名。例如:class Location; 引用性说明不能用于说明类的变量,但可说明指针,例如: class myClass{ ??? private: ??????? int i; ??? myclass member;//错 ??? myclass *pointer;//对 } 注意:在类定义体外定义成员函数时,需在函数名前加上类域标记,因为类的成员变量和成员函数属于所在的类域,在域内使用时,可直接使用成员名字,而在域外使用时,需在成员名外加上类对象的名称。 8.1.3 类和结构 结构是类的一种特例,在结构中也可以定义成员函数。定义结构时只要把关键字class 改为struct即可。 class Location { private: ??? int X,Y; public: ??? void init(int x,int y) ??? { ??????? X=x; ?????
您可能关注的文档
- AutoCAD 2009工程绘图技术 覃国萍 第4章绘制零件图一新.ppt
- AutoCAD 2009工程绘图技术 覃国萍 第6章轴测图新.ppt
- AutoCAD 2009工程绘图技术 覃国萍 第7章AUTOCAD设计中心和CAD标准新.ppt
- AutoCAD 2009实用教程 孙江宏 第3章 绘图初步新.ppt
- AutoCAD 2009实用教程 孙江宏 第6章 对象修改新.ppt
- AutoCAD 2009实用教程 孙江宏 第8章 面域造型新.ppt
- AutoCAD 2009实用教程 孙江宏 第10章 文字注释新.ppt
- AutoCAD 2009实用教程 孙江宏 第11章 块、参照和设计中心新.ppt
- AutoCAD 2009实用教程 孙江宏 第12章 打印输出新.ppt
- AutoCAD制图辅助设计案例教程 王秀丽 第八章新.ppt
- 中国国家标准 GB/T 45390-2025动力锂电池生产设备通信接口要求.pdf
- 中国国家标准 GB/T 45393.2-2025信息技术 建筑信息模型(BIM)软件 第2部分:参数化模型.pdf
- GB/T 45393.2-2025信息技术 建筑信息模型(BIM)软件 第2部分:参数化模型.pdf
- 《GB/T 45393.2-2025信息技术 建筑信息模型(BIM)软件 第2部分:参数化模型》.pdf
- GB/T 10184-2025电站锅炉性能试验规程.pdf
- 海尔智家股份有限公司海外监管公告 - 海尔智家股份有限公司2024年度环境、社会及管治报告.pdf
- 上海复旦张江生物医药股份有限公司2024 环境、社会及管治报告.pdf
- 中国邮政储蓄银行股份有限公司中国邮政储蓄银行2024年可持续发展报告.pdf
- 豫园股份:2024年环境、社会及管治(ESG)报告.pdf
- 南京熊猫电子股份有限公司海外监管公告 - 2024年度环境、社会及治理(ESG)报告.pdf
文档评论(0)