- 1、本文档共79页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
面向对象的方法面向对象语言被分为两大阵营纯粹的面向对象语言:Java混合型面向对象语言:C++结构化程序设计将问题进行功能分解(函数)效率低,程序的可重用性差。面向对象方法将问题分解为一系列的实体(对象)可维护性、可扩充性好构造函数C++语言提供了类的两个成员函数,它们分别是构造函数和析构函数,可以帮助用户自动完成对象的初始化和清理性工作。构造函数(constructor)是类所特有的成员函数,对象创建时自动被调用,完成对象的初始化工作。允许为内联函数、重载函数、带默认形参值的函数构造函数语法形式类名(参数表);说明构造函数名与类名相同。构造函数无返回值,不能把void写在构造函数名的前面,函数体中也不能出现return语句。构造函数的访问控制属性必须是public。析构函数语法形式:~类名();说明析构函数名是在类名前加~(按位取反符),表示它与构造函数的作用正好相反。析构函数没有返回值,没有参数,也不允许重载,即一个类仅有一个析构函数。classTest{ private: intx,y; public: Test(inti=0,intj=0):x(i),y(j) { cout“Constuctorcalled!”endl;} ~Test() { cout“Objectis”x“,”y; cout“Destructorcalled!”endl;}……};************************************************************类与对象关系的图形标识依赖关系图中的“类A”是源,“类B”是目标,表示“类A”使用了“类B”,或称“类A”依赖“类B”类A类BUML图形标识*类与对象关系的图形标识作用关系——关联图中的“重数A”决定了类B的每个对象与类A的多少个对象发生作用,同样“重数B”决定了类A的每个对象与类B的多少个对象发生作用。类A重数A类B重数BUML图形标识*类与对象关系的图形标识包含关系——聚集和组合类A类B重数A重数B类A类B重数A重数B聚集表示类之间的关系是整体与部分的关系,“包含”、“组成”、“分为……部分”等都是聚集关系。UML图形标识*类与对象关系的图形标识继承关系——泛化父类A父类B子类1子类2UML图形标识*注释在UML图形上,注释表示为带有褶角的矩形,然后用虚线连接到UML的其他元素上,它是一种用于在图中附加文字注释的机制。注释文字UML图形标识结构体结构体是一种特殊形态的类与类的唯一区别:类的缺省访问权限是private,结构体的缺省访问权限是public结构体存在的主要原因:与C语言保持兼容什么时候用结构体而不用类定义主要用来保存数据、而没有什么操作的类型人们习惯将结构体的数据成员设为公有,因此这时用结构体更方便*结构体与联合体结构体的定义和初始化结构体定义struct结构体名称{ 公有成员protected:保护型成员private:私有成员};一些结构体变量的初始化可以用以下形式类型名变量名={成员数据1初值,成员数据2初值,……};*结构体与联合体结构体举例(例4-7)#includeiostream#includeiomanip#includestringusingnamespacestd;structStudent{ //学生信息结构体 intnum; //学号 stringname; //姓名 charsex; //性别 intage; //年龄};*结构体与联合体结构体举例(例4-7)intmain(){ Studentstu={97001,LinLin,F,19}; coutNum:stu.numendl; coutName:endl; coutSex:stu.sexendl; coutAge:stu.ageendl; return0;}运行结果:Num:97001Name:LinLinSex:FAge:19*结构体与联合体联合体声明
文档评论(0)