中国科学技术大学:《C++语言程序设计》课程教学资源(讲义)第四章 类与对象

C++语言程序设计 第四拿类与对象 中国科大 黄章进
第四章 类与对象 C++语言程序设计 中国科大 黄章进

C++语言程序设计 本章主要内容 ●面向对象的思想 ·内联成员函数 ●OOP的基本特点 ·拷贝构造函数 ·类概念和声明 ·对象 ●类的组合 ·构造函数 。结构体与联合体 ●析构函数 。深度探索 米 a
C++语言程序设计 2 本章主要内容 面向对象的思想 OOP的基本特点 类概念和声明 对象 构造函数 析构函数 内联成员函数 拷贝构造函数 类的组合 结构体与联合体 深度探索

C++语言程序设计 回顾:面向过程的设计方法 面 向 重点: 对 如何实现的细节和过程,将数据与函数分开。 象 ●形式: 的 主模块+若千个子模块(main0+子函数)。 思 。特点: -自顶向下,逐步求精一一功能分解。 想 ●缺点: 效率低,程序的可重用性差
C++语言程序设计 3 回顾:面向过程的设计方法 重点: –如何实现的细节和过程,将数据与函数分开。 形式: –主模块+若干个子模块(main()+子函数)。 特点: –自顶向下,逐步求精——功能分解。 缺点: –效率低,程序的可重用性差。 面向对象的思想

C++语言程序设计 面向对象的方法 面 向 。目的: 对 -实现软件设计的产业化。 象 ●观点: 的 自然界是由实体(对象)所组成。 思 ·程序设计方法: 想 使用面向对象的观点来描述模仿并处理 现实问题。 ●要求: 高度概括、分类、和抽象
C++语言程序设计 4 面向对象的方法 目的: – 实现软件设计的产业化。 观点: – 自然界是由实体(对象)所组成。 程序设计方法: – 使用面向对象的观点来描述模仿并处理 现实问题。 要求: – 高度概括、分类、和抽象。 面向对象的思想

C++语言程序设计 抽象 OOP 抽象是对具体对象(问题)进行概括, 抽出这一类对象的公共性质并加以描述 的 的过程。 基 一先注意问题的本质及描述,其次是实现过 本 程或细节。 特 数据抽象:描述某类对象的属性或状态 (对象相互区别的物理量)。 点 行为抽象:描述某类对象的共有的行为特 征或具有的功能。 抽象的实现:通过类的声明。大
C++语言程序设计 5 抽象 抽象是对具体对象(问题)进行概括, 抽出这一类对象的公共性质并加以描述 的过程。 – 先注意问题的本质及描述,其次是实现过 程或细节。 – 数据抽象:描述某类对象的属性或状态 (对象相互区别的物理量)。 – 行为抽象:描述某类对象的共有的行为特 征或具有的功能。 – 抽象的实现:通过类的声明。 OOP的基本特点

C++语言程序设计 抽象实例 钟表 OOP 数据抽象: int hour,int minute,int second 基 ●行为抽象: 本 setTime(),showTime ( 点
C++语言程序设计 6 抽象实例——钟表 数据抽象: int hour,int minute,int second 行为抽象: setTime(),showTime() OOP的基本特点

C++语言程序设计 抽象实例 钟表类 OOP class Clock public: 的 void setTime(int newH,int newM,int newS); void showTime () 基 private: 本 int hour,minute,second; 特 }; 点
C++语言程序设计 7 抽象实例——钟表类 class Clock { public: void setTime(int newH, int newM, int newS); void showTime(); private: int hour, minute, second; }; OOP的基本特点

C++语言程序设计 抽象实例 OOP ●数据抽象: 的 string name,string gender,int age,int id 基 ●行为抽象: 本 生物属性角度: 特 getCloth(),eat(), walk(0,… 点 社会属性角度: work ()promote ()
C++语言程序设计 8 抽象实例——人 数据抽象: string name,string gender,int age,int id 行为抽象: 生物属性角度: getCloth(), eat(), walk(),… 社会属性角度: work(), promote() ,… OOP的基本特点

C++语言程序设计 封装 OOP 将抽象出的数据成员、代码成员相结 的 合,将它们视为一个整体。 基 目的是曾强安全性和简化编程,使用者 不必了解具体的实现细节,而只需要通 特 过外部接口,以特定的访问权限,来使 点 用类的成员。 实现封装:类声明中的} 米清
C++语言程序设计 9 封装 将抽象出的数据成员、代码成员相结 合,将它们视为一个整体。 –目的是曾强安全性和简化编程,使用者 不必了解具体的实现细节,而只需要通 过外部接口,以特定的访问权限,来使 用类的成员。 –实现封装:类声明中的{} OOP的基本特点

C++语言程序设计 封装 OOP 实例: class Clock 外部接口 基 public:void setTime (int newH,int newM, int newS) 特 void showTime () 点 private:int hour,minute, second: 特定的访问权限 边界 10
C++语言程序设计 10 封装 实例: class Clock { public:void setTime(int newH, int newM, int newS); void showTime(); private: int hour, minute, second; }; 边界 特定的访问权限 OOP的基本特点 外部接口
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 中国科学技术大学:《C++语言程序设计》课程教学资源(讲义)第六章 数组、指针与字符串.pdf
- 中国科学技术大学:《C++语言程序设计》课程教学资源(讲义)第三章 函数.pdf
- 中国科学技术大学:《C++语言程序设计》课程教学资源(讲义)第二章 C++简单程序设计.pdf
- 中国科学技术大学:《C++语言程序设计》课程教学资源(讲义)C++语言漫谈.pdf
- 中国科学技术大学:《C++语言程序设计》课程教学资源(讲义)第一章 绪论(主讲:黄章进).pdf
- 中国科学技术大学:《C++语言程序设计》课程教学资源(复习提纲,主讲:黄章进).pdf
- 《C++程序设计》课程教学资源(参考资料)C++ Programming ISO/IEC 14882 C++11(规范)Information technology — Programming languages — C++.pdf
- 《C++程序设计》课程教学资源(参考资料)C++ Programming ISO/IEC 14882 2003(规范文档)INTERNATIONAL STANDARD(Second edition).pdf
- 中国科学技术大学:单变量均匀静态细分格式的连续性分析和构造 Continuity Analysis and Construction of Uniform Stationary Univariate Subdivision Schemes.pdf
- 中国科学技术大学:NEW PROOF OF DIMENSION FORMULA OF SPLINE SPACES OVER T-MESHES VIA SMOOTHING COFACTORS.pdf
- 中国科学技术大学:JOURNAL OF UNIVERSITY OF SCIENCE AND TECHNOLOGY OF CHINA.pdf
- 中国科学技术大学:一类多参数的曲线细分格式.pdf
- 中国科学技术大学:Estimating Error Bounds and Subdivision Depths for Loop Subdivision Surfaces.pdf
- 中国科学技术大学:An Efficient Approach to Real-Time Sky Simulation.pdf
- 中国科学技术大学:Bounding the Distance between a Loop Subdivision Surface and Its Limit Mesh.pdf
- 中国科学技术大学:Bounding the Distance between a Loop Subdivision Surface and Its Limit Mesh.pdf
- 中国科学技术大学:A bound on the approximation of a Catmull-Clark subdivision surface by its limit mesh.pdf
- 中国科学技术大学:Full Camera Calibration from a Single View of Planar Scene.pdf
- 中国科学技术大学:Extended Doo-Sabin Surfaces.pdf
- 中国科学技术大学:Distance Between a Catmull-Clark Subdivision Surface and Its Limit Mesh.pdf
- 中国科学技术大学:《C++语言程序设计》课程教学资源(讲义)第五章 数据的共享与保护.pdf
- 中国科学技术大学:《C++语言程序设计》课程教学资源(讲义)第八章 多态性.pdf
- 中国科学技术大学:《C++语言程序设计》课程教学资源(讲义)第七章 继承与派生.pdf
- 中国科学技术大学:《C++语言程序设计》课程教学资源(讲义)第九章 群体类和群体数据的组织.pdf
- 中国科学技术大学:《C++语言程序设计》课程教学资源(讲义)第十章 C++标准模板库.pdf
- 中国科学技术大学:《C++语言程序设计》课程教学资源(讲义)第十一章 流类库与输入输出.pdf
- 中国科学技术大学:《C++语言程序设计》课程教学资源(讲义)第十二章 异常处理.pdf
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第一章 绪论(主讲:郑莉).ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第十章 C++标准模板库.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第十一章 流类库与输入/输出.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第十二章 异常处理.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第二章 C++简单程序设计.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第三章 函数.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第四章 类与对象.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第五章 C++程序的结构.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第六章 数组、指针与字符串.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第七章 继承与派生.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第八章 多态性.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第九章 群体类和群体数据的组织.ppt
- 中国科学技术大学:《计算机图形学》课程教学资源(讲义)第一章 计算机图形学概述 Computer Graphics.pdf