- 1、本文档共153页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[第3章面向对象程序设计
第3章 面向对象程序设计 3.1 面向对象程序设计思想 3.1.1 面向对象程序设计的特点 1.抽象性 用C++语言可以将该图形描述如下: 圆形(circle): 数据抽象: double x,y,r; 行为抽象: setx();sety();setr();draw(); 抽象是面向对象方法的核心。 2.封装性 3.继承性 4.多态性 多态性也是面向对象程序设计的重要特性之一。 3.1.2 面向对象的标记 图3-1给出了类的标记方法和一个point类的标记实例,point类将在本章的后面部分定义和使用。 对象是类的实例,在Cord/Yourdon标记中,对象是在相应类标记外加一个圆角矩形框,如图3-2所示。 连接符号主要有三种,它们分别表示消息联系、继承关系和包含关系,如图3-3所示。 3.2 类和对象 3.2.1 类的声明 类的声明即类的定义,声明一个类的语法与结构的声明类似,其一般形式为: class 类名 { private: 私有成员函数和数据成员的说明 public: 公有成员函数和数据成员的说明 }; 各个成员函数的实现 其中,class是声明类的关键字;类名是标识符,表示声明的类的名字;类声明体内的函数和变量称为这个类的成员,分别称为成员函数和数据成员。 类的成员函数用于对数据成员进行处理,又称为“方法”,程序中通过类的成员函数来访问其内部的数据成员,成员函数是类与外部程序之间的接口。一般类中成员函数的原型声明写在类定义体内,用以说明该成员函数的形式参数和返回值类型,而成员函数的定义体一般写在类定义之外。通常采用下面的形式定义成员函数: 类型标识符 类名::成员函数名(形参表) { 函数体 } 例如: class rectangle { private: int x,y,weight,high; public: rectangle(int xx,int yy,int w,int h) {x = xx; y = yy; weight = w; high = h;} inline int area(); }; inline int rectangle::area() { return weight * high; } 3.2.2 对象 类和对象的关系相当于普通数据类型与其变量的关系。类是一种逻辑抽象概念,声明一个类只是定义了一种新的数据类型,对象说明才真正创建了这种数据类型的物理实体。由同一个类创建的各个对象具有完全相同的数据结构,但它们的数据值可能不同。 一旦创建了一个类的对象,程序就可以用运算符“.”来引用类的公有成员,其一般形式为 对象名.公有数据成员名 或 对象名.公有成员函数名(实参表) 例如,前面我们定义一个rectangle类,现在我们定义一个rectangle的对象r1,通过对象r1完成对成员函数area()的调用。 rectangle r1(10,10,20,20); r1.area(); 需要注意,只有用public定义的公有成员才能使用圆点操作符访问,对象中的私有成员是类中隐藏的数据,不允许在类外的程序中被直接访问,只能通过该类的公有成员函数来访问它们。 3.2.3 构造函数和析构函数 1. 构造函数 构造函数是在类中声明的一种特殊的成员函数,作用是在对象被创建时使用特定的值构造对象,将对象初始化为一个特定的状态。 构造函数的名字与它所属的类名相同,被声明为公有函数,且没有任何类型的返回值,在创建对象时被自动调用。 构造函数作为类的一个成员函数,具有一般成员函数所有的特性,它可以访问类的所有数据成员,可以是内联函数,可以带有参数表,还可以带默认的形参值。构造函数也可以重载,以提供初始化类对象的不同方法。 例如,前面定义的rectangle类的构造函数为 rectangle(int xx,int yy,int w,int h){x = xx; y = yy; weight = w; high = h;} 每个类都必须有构造函数,若类定义时没有定义任何构造函数,编译器会自动生成一个不带参数的缺省构造函数,其形式如下: 类名::缺省构造函数名() { //…… } 2. 拷贝构造函数 定义拷贝构造函数的一般形式为: class class_name { private: public: class_name(形式参数表); class_name(class_name
您可能关注的文档
- [每日工作中必备的32个心态.ppt
- [比亚迪案例分析.ppt
- [第3章数字城市空间基础数据的.ppt
- [比例意义和性质总结.ppt
- [比例的基本性质ppt课件.ppt
- [比例的意义和基本性质.ppt
- [比亚迪系列介绍.ppt
- [母子系统保健.ppt
- [比例积分微分控制及其调节过程.ppt
- [比例的意义,基本性质,,解比例,正比例、,反比例,比例尺,整理与复习,.ppt
- 航天军工2024年度策略:需求落地,加速成长(202311).pdf
- 基于对保障性住房的研究:2023房地产长效机制新解.pdf
- 计算机行业数据要素系列报告之三:公共数据授权运营_亟待开发的蓝海(202307).pdf
- 锦囊专家&DIRC:中国数字产业创新研究中心-中国数字化转型与创新评选2018-2022五年对标洞察报告.pdf
- 临床质谱行业白皮书:NGS之后精准医疗新方向,七大技术加速临床质谱国产化.pdf
- 科技行业先锋系列报告60:飞行汽车,未来智能出行方式(202002).pdf
- 华宝新能 深度研究:便携储能龙头,渠道、品牌双翼助翱翔.pdf
- 计算机行业2023年度中期投资策略:技术与政策新周期初现,重视AI数据要素信创三大方向(202307).pdf
- 雷达行业深度报告:相控阵雷达迭代,国产化器件起航(202211).pdf
- 孤独症行业影响力评价报告.pdf
文档评论(0)