版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
上海交大面向对象程序设计C课件第14章12024/3/27目录面向对象程序设计概述类与对象继承与派生多态性与虚函数运算符重载模板与泛型编程22024/3/2701面向对象程序设计概述32024/3/270102对象(Object)对象是现实世界中的实体在计算机程序中的抽象表示,它包含了描述实体的属性和行为。类(Class)类是具有相同属性和行为的对象的抽象描述,它定义了创建对象的模板。封装(Encapsul…封装是将对象的属性和行为捆绑在一起,形成一个独立的实体,并隐藏内部实现细节。继承(Inherita…继承是一种通过已有的类创建新类的机制,新类继承了现有类的属性和行为,并可以添加新的特性。多态(Polymorp…多态是指允许使用父类类型的指针或引用来引用子类的对象,并可以在运行时确定调用哪个子类的方法。030405面向对象程序设计的基本概念42024/3/27面向对象程序设计通过类和对象的概念,将现实世界中的实体抽象为程序中的对象,提高了程序的可理解性和可维护性。抽象性面向对象程序设计通过封装将对象的属性和行为捆绑在一起,隐藏了内部实现细节,提高了程序的安全性和可重用性。封装性面向对象程序设计通过继承机制实现了代码的复用和扩展,提高了程序的开发效率和可维护性。继承性面向对象程序设计通过多态机制实现了程序的灵活性和可扩展性,使得程序可以更加自然地模拟现实世界中的复杂关系。多态性面向对象程序设计的特点52024/3/27Java是一种纯面向对象的编程语言,它强制使用面向对象的方式进行程序设计,提供了丰富的类库和强大的跨平台能力。C#是微软公司开发的一种面向对象的编程语言,它借鉴了Java的许多优点,并提供了更加完善的语言特性和开发工具支持。面向对象程序设计的语言C#Java62024/3/2702类与对象72024/3/27类的概念类是面向对象程序设计中的基本单位,它是一种用户自定义的数据类型,用于描述具有相同属性和行为的对象。类的定义语法在C中,使用`class`关键字定义类,后面跟类的名称和类的主体,主体中包含类的成员变量和成员函数。类的成员类的成员包括数据成员(成员变量)和函数成员(成员函数),分别用于描述对象的属性和行为。类的定义82024/3/27对象的创建与使用当不再需要对象时,应使用`delete`运算符释放对象所占用的内存空间,并调用类的析构函数来清理对象所使用的资源。对象的销毁在程序中,使用类的名称和变量名来创建对象,并使用`new`运算符为对象分配内存空间。创建对象时,可以调用类的构造函数来初始化对象的状态。对象的创建通过对象名和对象的成员访问运算符`.`来访问对象的成员变量和成员函数,实现对对象的操作。对象的使用92024/3/27public成员可以被任何代码访问,包括类的成员函数、其他类和对象。只能被类的成员函数和派生类中的成员函数访问。只能被类的成员函数访问,其他代码无法直接访问。通过合理地使用访问控制符,可以隐藏类的内部实现细节,提高程序的可维护性和安全性。同时,也可以控制类与类之间的耦合度,实现代码的模块化和重用。protected成员private成员访问控制的作用类的访问控制102024/3/2703继承与派生112024/3/27继承是面向对象程序设计中的一个重要机制,它允许在已有的类的基础上创建新类,新类继承了现有类的属性和方法。继承实现了代码的重用,提高了软件的可维护性和可扩展性。在C中,继承是通过派生类来实现的,派生类可以继承一个或多个基类的成员。010203继承的概念122024/3/27派生类的定义语法为:`class派生类名:继承方式基类名{...};`,其中继承方式可以是`public`、`protected`或`private`。派生类可以继承多个基类,这种情况下称为多重继承。派生类是通过继承基类来定义的新类,它包含了基类的所有成员,并可以添加新的成员。派生类的定义132024/3/27继承的访问控制在C中,有三种继承方式private继承public继承protected继承public、protected和private,它们分别决定了基类成员在派生类中的访问权限。基类的所有成员在派生类中变为`private`访问权限。基类的`public`和`protected`成员在派生类中保持原有的访问权限,`private`成员不可访问。基类的`public`和`protected`成员在派生类中变为`protected`访问权限,`private`成员不可访问。142024/3/2704多态性与虚函数152024/3/27多态性是面向对象程序设计中的一个重要特征,它允许使用父类类型的指针或引用来引用子类的对象,并在运行时根据实际对象的类型来调用相应的方法。在C中,实现多态性主要依赖于虚函数和纯虚函数。多态性使得程序具有更好的扩展性和可维护性,因为可以在不修改已有代码的情况下添加新的功能或子类。多态性的概念162024/3/2701在基类中,虚函数通过在函数声明前加上关键字`virtual`来定义。当使用基类指针或引用调用虚函数时,将根据实际对象的类型来确定调用哪个类的成员函数,实现多态性。如果派生类中没有重写基类的虚函数,则派生类对象将使用基类的虚函数。虚函数是在基类中声明的、在派生类中可能被重写的成员函数。020304虚函数的定义与使用172024/3/27纯虚函数与抽象类01纯虚函数是一种特殊的虚函数,它在基类中声明但没有定义,要求派生类必须提供具体的实现。02纯虚函数通过在函数声明后加上`=0`来定义,表示该函数没有实现。03包含纯虚函数的类被称为抽象类,抽象类不能被实例化,只能作为其他类的基类。04派生类必须实现抽象类中的所有纯虚函数才能被实例化,否则该派生类仍然是抽象类。182024/3/2705运算符重载192024/3/27运算符重载的概念运算符重载是对已有的运算符赋予多重含义,使同一个运算符作用于不同类型的数据时导致不同的行为。运算符重载可以改变运算符原有的功能,但不能改变运算符的优先级和结合性。通过运算符重载,可以扩展C语言中已有运算符的功能,使之能用于自定义数据类型,从而方便用户的使用和提高程序的效率。202024/3/27运算符重载的实现运算符重载是通过定义特殊的函数来实现的,这些函数被称为运算符函数。运算符函数的定义格式与普通函数类似,但函数名必须是以关键字`operator`开头,后跟所要重载的运算符。运算符函数的参数类型和个数取决于所要重载的运算符。运算符函数的返回类型通常与被操作数的类型相同,但有些情况下也可以不同。212024/3/27不是所有的运算符都可以被重载,有些运算符在C语言中是不能被重载的,如成员访问运算符`.`、指向成员指针运算符`.*`、作用域分辨符`:`、条件运算符`?:`等。重载的运算符必须和用户定义的自定义类型对象一起使用,否则会导致编译错误。运算符重载不能改变该运算符的优先级和结合性,否则会导致程序逻辑错误。在进行运算符重载时,应注意保持其一致性和合理性,避免出现二义性和语义上的混淆。运算符重载的注意事项222024/3/2706模板与泛型编程232024/3/27模板的概念01模板是一种编程技术,用于实现泛型编程,提高代码的复用性和可维护性。02模板可以分为函数模板和类模板两种类型。使用模板可以减少重复的代码编写,提高开发效率。03242024/3/27函数模板的定义与使用01函数模板的定义语法:`template<typename类型参数>返回值类型函数名(参数列表){函数体}`02类型参数可以用任意类型替换,包括基本数据类型和用户自定义类型。03函数模板的使用方法与普通函数相同,编译器会根据传入的参数类型自动推断出模板参数的类型。252024/3/27类模板的定义语法:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版放射性物质运输安全责任书3篇
- 二零二五年快递行业包装回收利用合同范本3篇
- 2025版教育培训外协合同协议书3篇
- 二零二五不锈钢罐体生产质量管理体系认证合同3篇
- 2024版汽车修理工劳动合同模板格式
- 2025年度特色民宿租赁运营管理合同3篇
- 2025年度个人收入证明专业审核与制作合同3篇
- 二零二五年度医院门卫医疗服务合同
- 送法进企业:2025年度总工会合作合同2篇
- 2025年度校企合作人才培养协议合同
- 2024年苏州工业园区服务外包职业学院高职单招职业适应性测试历年参考题库含答案解析
- 人教版初中语文2022-2024年三年中考真题汇编-学生版-专题08 古诗词名篇名句默写
- 2024-2025学年人教版(2024)七年级(上)数学寒假作业(十二)
- 山西粤电能源有限公司招聘笔试冲刺题2025
- 医疗行业软件系统应急预案
- 使用错误评估报告(可用性工程)模版
- 《精密板料矫平机 第2部分:技术规范》
- 2024光伏发电工程交流汇流箱技术规范
- 旅游活动碳排放管理评价指标体系构建及实证研究
- 2022年全国职业院校技能大赛-电气安装与维修赛项规程
- 小学德育养成教育工作分层实施方案
评论
0/150
提交评论