c++primer plus 6 读书笔记 第十章 对象和类

第10章 对象和类

10.1过程性编程和面向对象编程

过程性编程首先考虑遵循的步骤,然后考虑如何表示这些数据。

面向对象编程(OOP)首先考虑数据(表示与使用)

OOP方法 从用户角度考虑对象。描述对象所需的数据及用户与数据交互的操作。

10.2 抽象和类

10.2.1 类型是什么

指定基本类型完成3项工作:

1. 内存数量

2. 决定如何解释内存的位

3. 决定可使用数据对象执行的操作或方法

10.2.2 C++中的类

类是一种将抽象转化成用户数据类型的C++工具。

它将数据表示和操纵数据的方法合成一个简洁的包。

首先考虑如何表示类,

然后定义类(类声明(数据及接口)和类方法定义(类成员函数的实现))。

10.2.3 实现类成员函数

成员函数定义与常规函数定义非常相似。

但是有两个特征。

1. 定义成员函数时,使用作用域解析(::)来标记函数所属的类。

2. 类方法可以访问类的private成员。

10.2.4 使用类

可使用多文件程序的方法。

10.2.5 修改实现

保持接口不变。

10.3 类的构造和析构函数

C++提供构造函数用于构造新对象,

析构函数用于清理对象。

10.3.1 声明和定义构造函数

构造函数名称与类名相同。

10.3.2 使用构造函数

显式(使用函数名)、 隐式(使用{}

构造函数无法使用对象调用(因为使用构造函数前还没有对象)

10.3.3 默认构造函数(无参数的构造函数)

不提供构造函数,编译器会自动生成默认构造函数。

但是通常需要自己提供构造函数。

自己定义默认构造函数有两种(提供默认参数)、(无参数)

10.3.4 析构函数

在类名前加~

(初级阶段不需要管它。)

10.3.5 改造Stock

10.3.6 构造函数和析构函数小结

10.4 this指针

涉及两个对象的方法需要this指针。

this指针是指向用来调用成员函数的对象(this作为隐藏参数传递给方法)

10.5 对象数组

声明方法与标准数组相同。

10.6 类作用域

在类中定义的名称的作用域为整个类。

10.6.1 作用域为类的常量

类中声明枚举。

或者使用static

10.6.2作用域内枚举(c++11

C++提供了新的枚举,枚举类

enum class egg{Small,Medium,Large,Jumbo}

10.7 抽象数据类型(ADT,abstract data type)

以通用方式描述数据类型(不依据特定的类型)


猜你喜欢

转载自blog.csdn.net/qq_41068877/article/details/81063225