面向对象的基本概念
程序化结构设计
在程序化结构设计中,采用 自顶向下、逐步求精及模块化 的思想
在编写程序时,使用3种基本控制结构来构造程序,即:顺序、选择、循环
面向对象程序设计的概念和特点
面向对象的程序设计方法,通常包括3个方面:
- 面向对象的分析;
- 面向对象的设计;
- 面向对象的程序设计。
对象具有的2个特征:
- 状态:静态特征,指对象本身的信息,也称为属性;
- 行为:动态特征,对对象的操作;
面向对象的程序设计的4个基本特点:
- 抽象;
- 封装;
- 继承;
- 多态。
对象的特点:
- 属性:描述对象静态特征的数据项;
- 操作:描述对象动态特征的函数序列。
C++中使用3个要素来描述对象:
- 对象名;
- 属性;
- 操作。
类的初步认识
类的基本数据类型
基本数据类型 | 名称 | 大小/字节 |
---|---|---|
bool | 布尔型 | 1 |
char | 字符型 | 1 |
int | 整数型 | 4 |
float | 浮点型 | 4 |
double | 双精度浮点型 | 8 |
类的定义
类中的成员按 功能 划分,包括:
- 成员变量;
- 成员函数。
类中的成员按 访问权限 划分,包括:
- 公有成员;
- 私有成员;
- 保护成员。
标识符命名规则:字母、数字和下划线的组合,大小写敏感,但不能以数字开头,也不能和系统中使用的关键字完全相同。
类是具有 唯一标识符 的实体,就是说 类名不能重复。
类定义以 “;” 结束。
定义类时系统并不为类分配存储空间,而只是把类看作是一种模板或样板。
类中声明的任何成员不能使用 auto
、extern
和 register
关键字进行修饰。
类C中不能定义类C的成员变量,但可以定义类C的指针和引用。
成员函数
如果成员函数 定义 在类体 内部,则默认是 内联函数;
如果成员函数 声明 在类体 内部,并加上inline
关键字,然后再 类体外 给出函数定义,这样的成员函数也是内联函数。
类体外成员函数的定义的前面必须用 “类名::” 来限定:
返回值类型 类名::成员函数名(参数列表)
{
函数体
}
类作用域运算符:::
成员函数和普通函数一样,在内存中只有一份,它可以作用于不同的对象,为类中各对象共享。
成员函数允许 重载
创建类对象的基本形式
基础形式
类名 对象名;
使用 new
运算符的形式
类名 * 对象名 = new 类名();
delete 对象名;
使用 new
形式创建对象时,返回的是一个 对象指针。
使用 new
创建的对象,必须使用 delete
来撤销。
对象的引用
类名 & 对象引用名 = 对象;
对象的指针
类名 * 对象指针名 = 对象的地址;
对象的数组
类名 对象数组名[数组大小];
对象数组的下标都是从 0 开始,且对象数组名是一个 指向数组首地址的常量指针。
访问对象的成员
类名 对象名;
对象名.成员变量;
对象名.成员函数(参数列表);
类名 & 对象引用名 = 对象名;
对象引用名.成员变量;
对象引用名.成员函数(参数列表);
类名 * 对象指针名 = & 对象名;
对象指针名->成员变量;
对象指针名->成员函数(参数列表);
如果是通过指针访问成员变量,使用“指针->成员名”的方式来访问对象的成员,但是指针需要初始化 。
p是一个指向类A数据成员的m的指针,A1是类A的一个对象,则要给m赋值的正确操作为:* A1.p = 5;
类成员的可访问范围
访问范围说明符 | 含义 | 作用 |
---|---|---|
pubilc | 公有的 | 修饰的类成员可以在程序的任务地方被访问 |
private | 私有的 | 修饰的类成员仅能在本类内被访问 |
protected | 保护的 | 修饰的类成员可以在本类内以及子类中被访问 |
只有在 类内 和在 友元函数 内才可以访问私有成员。
隐藏的作用
设置私有成员的机制叫做 隐藏。
目的:强制对私有成员变量的访问一定要通过公有成员函数进行。
好处:如果以后修改了成员变量的类型或属性,只需要修改成员函数即可。