struct类
类数据成员
类体定义类的成员,我们的类只有数据成员(data member)。类的数据成员定义了类的对象的具体内容,每个对象有自己的一份数据成员拷贝。修改一个对象的数据成员,不会影响其他Sales_data对象。
C++11新标准规定,可以为数据成员提供一个类内初始值(in-class initializer)。创建对象时,类内初始值将用于初始化数据成员。没有初始值的成员将被默认初始化
编写自己的头文件
为了确保各个文件中类的定义一致,类通常被定义在头文件中,而且类所在头文件的名字应该与类的名字一样。
头文件通常包含那些只能被定义一次的实体。
注意:头文件一旦改变,相关的源文件必须重新编译以获取更新过的声明。
预处理器概述
确保头文件多次包含仍能安全工作的常用技术是预处理器(preprocessor)
他由C++语言从C语言继承而来。预处理器是在编译之前执行的一段程序,可以部分地改变我们所写地程序。
当预处理器看到#include标记时就会用指定的头文件内容代替#include。
C++程序还会用到一项预处理器功能是头文件保护符(header)。
预处理变量有两种状态:已定义和未定义。#define指令把一个名字设定为预处理变量,另外两个指令则分别检查某个指定的预处理变量是否已经定义:#ifdef当且仅当变量已定义时为真,#ifndef当且仅当变量未定义时为真。一旦检查为真,则执行后续操作直至遇到#endif指令为止。