12.1 类的定义与申明
类是C++最重要的特征。
简单来说,类就是定义了一个新的类型和一个新的作用域。
12.1.1 类定义
1.类成员
可以是数据、函数或函数别名。
2.构造函数
3.成员函数
在类内部定义的函数默认为inline。
将关键字const加在形参表之后,就可以将成员函数申明为常量。const成员不能改变其所操作的对象的数据成员。const必须同时出现在申明和定义中,若只出现在一处,就会出现编译错误。
12.1.2 数据抽象与封装
类背后蕴涵的基本思想是数据抽象与封装。
数据抽象是一种依赖于接口和实现分离的编程技术。
封装是一项将低层次的元素组合起来形成新的、高层次实体的技术。
数据抽象和封装的好处:
1、避免类内部出现无意的、可能破坏对象状态的用户级错误。
2、随时间推移可以根据需要改变或缺陷(bug)报告来完善类实现,而无需改变用户级代码。
12.1.3 关于类定义的更多内容
1、同一类型的多个数据成员
2、使用类型别名来简化类
3、成员函数可以被重载
4、定义重载函数
5、显式指定inline成员函数
可以在类定义体内部指定一个成员为inline,作为申明的一部分。或者,也可以在类定义体外部的函数定义上指定inline。
在申明和定义处指定inline都是合法的。在类的外部定义inline的一个好处是使得类比较容易阅读。
12.1.4 类申明和类定义
12.1.5 类对象
定义一个类时,也就定义了一个类型。一旦定义了类,就可以定义该类型的对象。定义对象时,将为其分配存储空间,但(一般而言)定义类型时不进行存储分配。
为什么类的定义以分号结束?
类的定义以分号结束。分号是必须的,是因为在类定义之后可以接一个对象定义列表。
class Sales_item{/*. . .*/};
class Sales_item{/*. . .*/} accum, trans;