第4章 类与对象
什么是对象?
只要是客观存在的事物都是对象。
类与对象的关系?
对象是对客观事物的抽象,类是对对象的抽象。类是一种抽象的数据类型。
它们的关系是,对象是类的实例,类是对象的模板。
抽象:数据抽象 和 行为抽象
封装:将抽象得到的数据和行为组合成一个“类”
继承:使得子类具有父类的属性和方法或者重新定义、追加属性和方法等。
多态:运行时多态(基类指针 / 基类引用 / 函数类) 和 编译时多态(重载:函数重载 / 运算符重载)
类:可以实现对数据的封装及隐蔽
数据成员 和 函数成员
类的成员函数名需要用类名来限制 返回值类型 类名::函数成员名(参数表) { //::作用域区分符,用于标识属于什么类的成员。
函数体 }
访问控制 含义 属性
public 公有成员 类的外部接口
protected 保护成员 仅允许本类成员函数及派生类成员函数访问
private 私有成员 仅允许本类成员函数访问
使用 对象名.数据成员名 只能访问公有成员
对象指针变量名->公有成员
类成员函数的默认值一定要写在类的定义中
内联成员函数
1、成员函数的函数体定义在类内部 2、使用关键字inline
函数重载
函数名相同,但参数不相同(类型不同,或者个数不同)的一组函数。
构造函数 为对象分配空间 对数据成员赋初值
类名::类名(){}
函数名(参数列表):初始化列表 //初始化列表的形式: 成员名1(形参名1),成员名2(形参名2),成员名n(形参名n)
{ 函数体 / 空函数体 }
{ 函数体 / 空函数体 }
复制构造函数
类名 :: 类名( 类名 & 对象名 , …){ }
1、类的一个对象去初始化该类的另一个对象 2、函数的形参是类的对象 3、函数的返回值是类的对象
析构函数
类名::~类名()
{
函数语句
}
{
函数语句
}
组合类中构造函数(复制构造函数同)和析构函数的调用顺序:
先调用内嵌对象的构造函数,再调用本类对象的构造函数。如果有多个内嵌对象,按照内嵌对象在组合类中的声明顺序依次调用,即先声明者先构造。
析构函数的调用顺序,与构造函数的调用顺序相反。

浙公网安备 33010602011771号