C+面向对象程序设计复习
1 C++面向对象程序设计复习
第一章面向对象程序设计概述 1.1什么是面向对象程序设计 111面向过程程序设计的基本概念 112面向对象程序设计的基本概念 面向对象程序设计是一种新的程序设计范型。面向对象程序的 主要结构特点是: 第一,程序一般由类的定义和类的使用两部分组成,在主程序中定 义各对象并规定它们之间传递消息的规律; 第二,程序中的一切操作都是通过向对象发送消息来实现的,对象 接收到后,启动有关方法完成相应操作
2 第一章 面向对象程序设计概述 1.1 什么是面向对象程序设计 1.1.1 面向过程程序设计的基本概念 1.1.2 面向对象程序设计的基本概念 面向对象程序设计是一种新的程序设计范型。面向对象程序的 主要结构特点是: 第一,程序一般由类的定义和类的使用两部分组成,在主程序中定 义各对象并规定它们之间传递消息的规律; 第二,程序中的一切操作都是通过向对象发送消息来实现的,对象 接收到后,启动有关方法完成相应操作
12对象与类 ,21对象与类概念 对象是:现实世界的一个实体,其特性是: (1每一个必须有一个名字以区别于其他对象; (2)用属性来描述它的某些特征; (3)有一组操作,每一个操作决定对象的一种行为。 类是:一组具有共同的属性特征和行为特征的对象的抽象。 122对象的状态 122对象的交互 124类的确定与划分
3 1.2 对象与类 1.2.1 对象与类概念 对象是:现实世界的一个实体,其特性是: (1) 每一个必须有一个名字以区别于其他对象; (2) 用属性来描述它的某些特征; (3) 有一组操作,每一个操作决定对象的一种行为。 类是:一组具有共同的属性特征和行为特征的对象的抽象。 1.2.2 对象的状态 1.2.2 对象的交互 1.2.4 类的确定与划分
.3数据的抽象与封装 面向对象系统的特征是:封装性、继承性和多态性 13.1现实世界中的抽象与封装 132数据的抽象与封装的基本概念 将数据结构和作用于数据结构上的操作组成一个实体,数据的表示 方式和对数据的操作细节被隐藏起来,用户通过操作接口对数据 进行操作。这就是数据的封装。 133对象的特性 14继承性 141继承的概念 允许派生类继承基类的数据和操作(即数据成员和成员函数),允许 派生类使用基类的数据和操作的同时,派生类还可以增加新的数 据和操作。 42继承的分类 43继承与封装的关系
4 1.3 数据的抽象与封装 面向对象系统的特征是:封装性、继承性和多态性 1.3.1 现实世界中的抽象与封装 1.3.2 数据的抽象与封装的基本概念 将数据结构和作用于数据结构上的操作组成一个实体,数据的表示 方式和对数据的操作细节被隐藏起来,用户通过操作接口对数据 进行操作。这就是数据的封装。 1.3.3 对象的特性 1.4 继承性 1.4.1 继承的概念 允许派生类继承基类的数据和操作(即数据成员和成员函数),允许 派生类使用基类的数据和操作的同时,派生类还可以增加新的数 据和操作。 1.4.2 继承的分类 1.4.3 继承与封装的关系
5多态性 15.1什么是多态性 不同的对象收到相同的消息时产生多种不同的行为方式 152重载的概念 16面向对象程序设计语言
5 1.5 多态性 1.5.1 什么是多态性 不同的对象收到相同的消息时产生多种不同的行为方式。 1.5.2 重载的概念 1.6 面向对象程序设计语言
第二章C++概述 21C++的起源和特点 211C++的起源 212C++的特点 22.C++源程序的构成 2,2,1C+=程序的一般格式 222C++程序的结构特点 23C++在非面向对象方面的一些特性 23.1注释行 232新的ⅣO流 cin是标准输入流,在程序中用于代表标准输入设备,即键盘。 运算符“>>”表示向右 cout是标准输出流,在程序中用于代表标准输出设备,即屏幕。 运算符“<<”表示向左 使用cin或cout进行JO操作时,在程序中必须嵌入头文件 iostream. h
6 第二章 C++概述 2.1 C++的起源和特点 2.1.1 C++的起源 2.1.2 C++的特点 2.2. C++源程序的构成 2,2,1 C+=程序的一般格式 2.2.2 C++程序的结构特点 2.3 C++在非面向对象方面的一些特性 2.3.1 注释行 2.3.2 新的I/O流 cin是标准输入流,在程序中用于代表标准输入设备,即键盘。 运算符“>>”表示向右 cout是标准输出流,在程序中用于代表标准输出设备,即屏幕。 运算符“<<”表示向左 使用cin或cout进行I/O操作时,在程序中必须嵌入头文件iostream.h
233灵活的局部变量说明 234结构、联合和枚举名可直接作为类型名 235 const修饰符 236内置函数 237函数原型 238带有缺省参数的函数 239函数重载 2.3.10作用域运算符: 2311无名联合 2312强制类型转换 2313new和 delete 2314引用 引用可为变量起别名,它主要用作函数参数以及函数的返回类 型。有参数引用和返回值引用
7 2.3.3 灵活的局部变量说明 2.3.4 结构、联合和枚举名可直接作为类型名 2.3.5 const修饰符 2.3.6 内置函数 2.3.7 函数原型 2.3.8 带有缺省参数的函数 2.3.9函数重载 2.3.10作用域运算符:: 2.3.11无名联合 2.3.12 强制类型转换 2.3.13 new和delete 2.3.14 引用 引用可为变量起别名,它主要用作函数参数以及函数的返回类 型。有参数引用和返回值引用
第三章类和对象 31类与对象的基本概念 311结构与类 (1)结构的扩充 (2)类的定义 312成员函数的定义 第一种方式是在类定义中只给出成员函数的原形,而成员函数体 在类的外部定义。 第二种方式是将成员函数定义在类的内部,即定义为内置函数。 (1)隐式定义 (2)显式定义 313对象的定义及引用 1.类与对象的关系 2.对象的定义 3对象的引用 外部函数不能引用对象的私有成员 4.对象的赋值语句 314类的作用域
8 第三章 类和对象 3.1 类与对象的基本概念 3.1.1 结构与类 (1) 结构的扩充 (2) 类的定义 3.1.2 成员函数的定义 第一种方式是在类定义中只给出成员函数的原形,而成员函数体 在类的外部定义。 第二种方式是将成员函数定义在类的内部,即定义为内置函数。 (1) 隐式定义 (2) 显式定义 3.1.3 对象的定义及引用 1. 类与对象的关系 2. 对象的定义 3. 对象的引用 外部函数不能引用对象的私有成员 4. 对象的赋值语句 3.1.4 类的作用域
32构造函数与析构函数 321构造函数 构造函数的特点: (1)构造函数的名字必须与类名相同 (2)构造函数可以有任意类型的參数,但不能具有返回值 (3)定义对象时,编译系统会自动地调用构造函数 322缺省参数的构造函数 323析构函数 334重载构造函数 335拷贝构造函数 33对象数组与对象指针 331对象数组 332对象指针 333this指针 34向函数传递对象 35静态成员 351静态数据成员 352静态成员函数
9 3.2 构造函数与析构函数 3.2.1 构造函数 构造函数的特点: (1) 构造函数的名字必须与类名相同 (2) 构造函数可以有任意类型的參数,但不能具有返回值 (3) 定义对象时,编译系统会自动地调用构造函数 3.2.2 缺省参数的构造函数 3.2.3 析构函数 3.3.4 重载构造函数 3.3.5 拷贝构造函数 3.3 对象数组与对象指针 3.3.1 对象数组 3.3.2 对象指针 3.3.3 this 指针 3.4 向函数传递对象 3.5 静态成员 3.5.1 静态数据成员 3.5.2 静态成员函数
36友元 友不卖不属于任何类的一般函数,另一个类的成员函数,整个的一 361友元函数 不属于任何类的一般函数 362友元成员 该函数是另一个类的成员函数,前加上 friend表示该另类的成员 函数,又是本类的友元成员 363友元类 在类内说明一个类(该类前面已定义),前加上 friend表示该类是 本类的友元类。友元类的所有成员函数可以访问它自己类私有成 员又可本类的私有成员 37对象成员
10 3.6 友元 友元:不属于任何类的一般函数,另一个类的成员函数,整个的一 个类。 3.6.1 友元函数 不属于任何类的一般函数 3.6.2 友元成员 该函数是另一个类的成员函数,前加上friend表示该另类的成员 函数,又是本类的友元成员。 3.6.3 友元类 在类内说明一个类(该类前面已定义),前加上friend表示该类是 本类的友元类。友元类的所有成员函数可以访问它自己类私有成 员又可本类的私有成员 3.7 对象成员