概念
数据抽象能帮助我们将对象的具体实现与对象所能执行的操作分离开来。
定义抽象数据类型
//item是一个Sales_item类型的对象。
//不能访问Sales_item对象的数据成员,事实上,我们甚至根本不知道这个类有哪些数据成员
Sales_item item;
//Sale_data类不是一个抽象数据类型
struct Sales_data{
std::string bookNo;
unsigned units_sold = 0;
double revenue = 0.0;
};
定义成员函数
引入this, 使用了点运算符来访问total对象的isbn成员,然后调用它。
Sales_data total;
total.isbn()
构造函数
每个类定义了它的对象被初始化的方式,类通过一个或者几个特殊的成员函数来控制其对象的初始化过程,这些函数叫做构造函数。构造函数的名字和类名相同,和其他函数不一样的是,构造函数没有返回类型。
默认的构造函数:
Sales_data() = default;
拷贝、赋值和析构
类还需要控制拷贝、赋值和销毁对象时发生的行为。当我们使用了赋值运算符时会发生对象的赋值操作。当对象不再存在时执行销毁的操作,比如一个局部对象会在创建它的块时被销毁,当vector对象销毁时存储在其中的对象也会被销毁。
类的作用域
在类的作用域之外,普通的数据和函数成员只能由对象、引用或者指针使用成员访问运算符来访问。
Screen::pos ht = 24, wd = 80;
Screen scr(ht, wd, '');
Screen *p = &scr;
char c = scr.get(); //访问scr对象的get成员
c = p->get(); //访问p所指对象的get成员
参考<<C++ Primer 第5版>>