C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.

Slides:



Advertisements
Similar presentations
人的性别遗传 合肥市第四十九中学 丁 艳. 男女成对染色体排序图 1 、男性和女性各 23 对染色体有何异同 ? 哪 一对被称为性染色体 ? 2 、这两幅图中,哪幅 图显示的是男性的染色 体?哪幅图显示的是女 性染色体? 3 、图中哪条染色体是 Y 染色体?它与 X 染色体 在形态上的主要区别是.
Advertisements

移动应用软件开发技术 第二讲:C++编程基础
课程 要求 参考 书目 课程 内容 课程 练习.
第 2 章 初探 C++.
跳楼价 亏本大甩卖 清仓处理 买一送一 5折酬宾. 跳楼价 亏本大甩卖 清仓处理 买一送一 5折酬宾.
项目:贪吃蛇游戏设计 工作任务一:系统设计(system design) 工作任务二:豆类(Bean)设计
清仓处理 跳楼价 满200返160 5折酬宾.
第九讲 类与对象 (I)面向对象基础.
色 弱 與 色 盲.
第4章 数组 数组是由一定数目的同类元素顺序排列而成的结构类型数据 一个数组在内存占有一片连续的存储区域 数组名是存储空间的首地址
宠物之家 我的宠物性别? 雌(♀) or 雄(♂) 第一阶段:我的宠物我做主 第二阶段:宠物“相亲记” 第三阶段:家族诞生
7.2 访问控制 —— 公有继承 公有继承练习 //Point.h #ifndef _POINT_H #define _POINT_H class Point { //基类Point类的定义 public: //公有函数成员 void initPoint(float x = 0, float.
第14章 c++中的代码重用.
C++语言程序设计 第七章 继承与派生 清华大学 郑 莉.
第八章 类和对象.
Using C++ The Weird Way Something about c++11 & OOP tricks
資料大樓 --談指標與陣列 綠園.
C++语言程序设计 第四章 类与对象 成都信息工程学院计算机系.
函數(一) 自訂函數、遞迴函數 綠園.
教材 《C++程序设计》.谭浩强. 清华大学出版社 王雪晶
第一章 程序的基本结构. 第一章 程序的基本结构 教材及授课结构 本章目标 基本内容 扩展阅读 上机指导 应用举例 习题.
第3章 继承和派生.
第12讲 多继承与虚基类 多继承 虚基类.
辅导课程六.
C++程序设计 string(字符串类) vector(容器类).
谭浩强 编著 中国高等院校计算机基础教育课程体系规划教材 C++程序设计.
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
切換Dev c++顯示語言 工具->環境選項(V)->介面->language (Chinese TW)
資訊學科中心研習 JAVA程式設計專題 臺北市立大理高級中學 黃世隆 2019/2/23.
C++大学基础教程 第9章 继承与派生 北京科技大学.
六、函数 教学目标: 函数的概念、定义、调用和返回 带自定义函数的程序设计 递推算法 递归思想及算法实现 函数的参数传递方式 C语言程序设计.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
C++大学基础教程 第11章 多态性 北京科技大学 信息基础科学系 2019/4/8 北京科技大学.
C++语言程序设计 C++语言程序设计 第五章 函数 第十一组 C++语言程序设计.
$9 泛型基础.
C++复习3 ----类的继承与派生.
C#面向对象程序设计 $6 深入理解类.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
C++语言程序设计 第四章 类与对象.
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第三章 控制语句 第十一组 C++语言程序设计.
第10讲 构造函数和析构函数 构造函数 析构函数 This 指针.
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
物件導向程式設計 CH2.
Object-Oriented Programming in C++ 第二章 类和对象
C++语言程序设计 C++语言程序设计 第八章 继承 C++语言程序设计.
C++程式設計入門 變數與運算子 作者:黃建庭.
C++语言程序设计 C++语言程序设计 第八章 继承 C++语言程序设计.
本节内容 函数嵌套调用的内存布局 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
#include <iostream.h>
第7章 模板 陈哲 副教授 南京航空航天大学 计算机科学与技术学院.
C++语言程序设计 C++语言程序设计 第八章 继承 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第十一章 异常处理 C++语言程序设计.
C++与数据结构简明教程 第五章 类和对象.
C++语言程序设计 C++语言程序设计 第十章 多态 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第八章 继承 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
第三章 高级函数特性.
C++语言程序设计 C++语言程序设计 第十章 多态 第十一组 C++语言程序设计.
第4章 类与对象 数学与统计科学学院.
C++语言程序设计 C++语言程序设计 第十一章 异常处理 C++语言程序设计.
C++语言程序设计(第4版) 第七章 继承与派生 数学与统计科学学院 胡凤珠.
變數與資料型態  綠園.
資料!你家住哪裏? --談指標 綠園.
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
資料結構與C++程式設計進階 C++與資料結構 講師:林業峻 CSIE, NTU 7/ 5, 2010.
Presentation transcript:

C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计

基本知识 a C++语言程序设计

在面向对象程序设计中,可以对复杂对象进行分解、抽象,把一个复杂对象分解为简单对象的组合 9.3 类的组合 在面向对象程序设计中,可以对复杂对象进行分解、抽象,把一个复杂对象分解为简单对象的组合 对于较复杂的问题可以使用类的组合来描述 采用部件组装的的方法,利用已定义的类来构成新类 类的组合(类的聚集),描述的是一个类内嵌其他类的对象作为数据成员的情况 C++语言程序设计

例如:Rectangle类的两个数据成员是Point类的对象 9.3 类的组合 例如:Rectangle类的两个数据成员是Point类的对象 它们之间的关系是一种包含与被包含的关系 带空心菱形的线表示两个类之间是包含关系 带箭头的线表示发送消息 C++语言程序设计

当创建组合类的对象时,各个内嵌对象也将被自动创建 创建组合类对象时: 9.3 类的组合 当创建组合类的对象时,各个内嵌对象也将被自动创建 创建组合类对象时: 要对本类的基本数据成员进行初始化 要对内嵌对象成员进行初始化,内嵌对象的构造函数的调用以及构造函数的参数传递,需要使用初始化列表来完成 C++语言程序设计

9.3 类的组合 组合类构造函数定义的一般形式为: 初始化列表用来完成内嵌对象的初始化 类名::类名(形参表):内嵌对象1(参数表), 内嵌对象2(参数表),… { //类的初始化 } 初始化列表用来完成内嵌对象的初始化 调用内嵌对象的构造函数以及为构造函数传递的参数 C++语言程序设计

当定义一个组合类的对象时,构造函数的调用顺序如下 9.3 类的组合 当定义一个组合类的对象时,构造函数的调用顺序如下 按照内嵌对象在组合类的声明中出现的次序,依次调用其内嵌对象的构造函数(注意:并不是按初始化列表中给出的顺序) 执行本类的构造函数的函数体 如果声明组合类的对象时没有指定对象的初始值,则自动调用无参构造函数,相应地,也调用内嵌对象的无参构造函数。 组合类的对象销毁时,析构函数的调用、执行顺序与构造函数刚好相反 C++语言程序设计

9.3 类的组合 例:类的组合应用 C++语言程序设计 //类的组合应用 #include <iostream> #include <cmath> using namespace std; class Point //Point类定义 { public: Point(int xx=0, int yy=0) {X=xx;Y=yy; cout<<"Point("<<X<<","<<Y<<") constructor"<<endl;} ~Point() {cout<<"Point("<<X<<","<<Y<<") destructor"<<endl;} int GetX() {return X;} int GetY() {return Y;} private: int X,Y; }; C++语言程序设计

9.3 类的组合 C++语言程序设计 //类的组合 class Rectangle //Rectangle类的定义 { public: //外部接口 Rectangle(int x1,int y1,int x2,int y2,int c); ~Rectangle(); int GetColor(){return color;} int GetWidth(){return abs(p1.GetX()-p2.GetX());} //求绝对值函数abs() int GetHeight(){return abs(p1.GetY()-p2.GetY());} private: //私有数据成员 Point p1,p2; //Point类的对象p1,p2 int color; }; C++语言程序设计

9.3 类的组合 C++语言程序设计 //组合类的构造函数、析构函数 Rectangle::Rectangle(int x1,int y1,int x2,int y2,int c):p1(x1,y1),p2(x2,y2) { cout<<"Rectangle构造函数被调用"<<endl; color = c; } Rectangle::~Rectangle() {   cout<<"析构Rectangle对象"<<endl; C++语言程序设计

9.3 类的组合 C++语言程序设计 //主函数 void main() { //定义Rectangle类的对象 Rectangle myr(1,1,4,5, 255); cout<<"The Rectangle's color is:"; cout<<myr.GetColor()<<endl; cout<<"The Rectangle's width is:"; cout<<myr.GetWidth()<<endl; cout<<"The Rectangle's height is:"; cout<<myr.GetHeight()<<endl; } C++语言程序设计