C++允许用户以类的形式自定义数据类型
2.6.1 定义Sales_data类型
以关键词 struct 开始,紧跟类名和类体。
类内部定义的名字必须唯一,但是可以与类外部定义的名字重复。
类后面可以跟变量
struct Sales_data{/*...*/} accum,trans,*salesptr;
所以
不要忘记在类定义后面加分号;;;;;;;;;;;;;;;
类数据成员
可以为数据成员提供一个类内初始值(in-class initializer)
没有初始化会被默认初始化为0,空字符串
2.6.2 使用Sales_data 类
略了(๑•̀ㅂ•́)و✧
2.6.3编写自己的头文件
类通常定义在头文件中,把头文件名字和类的名字写的一样
Note: 头文件一旦改变,相关的源文件必须重新编译以获取更新过的声明
预处理器概述
确保头文件多次包含仍能安全工作的通常技术是预处理器(preprocessor)
#include 预处理器看到就会用指定的头文件代替#include
c++还会用到的预处理功能是 头文件保护符(header guard),头文件保护符依赖于预处理变量。
预处理变量有两种状态:已定义和未定义。
#define 指令把一个名字设定为预处理变量
#ifdef 当且仅当变量已经定义时为真
#ifndef 当且仅当变量未定义时为真。
一旦为真,执行后续操作直至遇到 #endif
Warining : 预处理变量无视C++语言中关于作用域的规则
头文件保护符必须唯一
通常做法是将 头文件名命名保护符并大写
头文件没有包含在其他头文件中,也应该设置保护符
#ifndef SALES_DATA_H
#define SALES_DATA_H
#include <>
........
#endif