2 类和对象

2.1 面向对象程序设计(OOP)

2.1.1 什么是OOP?

2.1.2 为什么要OOP?

2.1.3 怎样OOP?

2.2 类的基本语法

2.2.1 类的定义

例如:

2.2.2 成员变量

例如:

2.2.3 成员函数

例如:

也可将声明与实现分开:

例如:

2.2.4 访问控制

例如:

访控限定符访控属性自己子类外部
public公有成员YesYesYes
protected保护成员YesYesNo
private私有成员YesNoNo

注意:类的缺省访问控制属性为私有,而结构的缺省访问控制属性为公有。

2.2.5 构造函数

例如:

2.2.6 对象的创建与销毁

2.2.6.1 在栈中创建单个对象

例如:

另一种写法:

例如:

2.2.6.2 在栈中创建对象数组

例如:

2.2.6.3 在堆中创建/销毁单个对象

例如:

2.2.6.4 在堆中创建/销毁对象数组

例如:

2.2.7 将类的声明与实现分别放在独立的文件中

2.2.8 类和对象的关系

2.3 构造函数

2.3.1 构造函数可以重载

2.3.2 缺省构造函数

2.3.3 构造和析构顺序

2.3.3.1 单个对象

2.3.3.2 对象数组

2.3.4 支持自定义类型转换的构造函数

2.4 初始化表

2.5 this指针

2.6 常量型成员函数与常量型对象

2.7 析构函数

2.7.1 基本用法

析构函数没有参数,因此无法重载。

2.7.2 缺省析构函数和自定义析构函数

2.7.3 析构函数所释放的资源不仅限于内存资源

2.8 拷贝构造与拷贝赋值

2.8.1 拷贝构造函数

自定义系统缺省提供
缺省构造函数和拷贝构造函数
除拷贝构造以外的其它构造函数拷贝构造函数
拷贝构造函数

2.8.2 拷贝构造的时机

2.8.3 拷贝赋值操作符函数

2.9 静态成员

2.9.1 静态成员属于类而非对象

2.9.2 单例模式

2.10 成员指针

2.10.1 指向成员变量的指针

2.10.2 指向成员函数的指针

2.10.3 静态成员指针