定义Sales_data类型
Sales_data初步定义如下:
struct Sales_data { string bookNo; unsigned units_sold = 0; double revenue = 0.0; };
- 关键词struct紧跟着类名和类体。类体和花括号包围形成一个新的作用域。
- 类内部定义的名字必须唯一,但是可以与类外部定义的名字重复。
类体右侧的表示结束的花括号后必须写一个分号,这是因为类体后面可以紧跟变量名以示对该类型对象的定义,所以分号必不可少:
struct Sales_data {}accum,trans,*salesptr; //与上一条语句等价,可能更好一些 struct Sales_data{}; Sales_data accum, trans, *salesptr;
- 分号表示声明符的结束
- 最好不要把对象的定义和类的定义放在一起
类数据成员
类体定义类的成员,我们的类只有数据成员:
- 类的数据成员定义了类的对象的具体内容,每个对象有自己的一份数据成员拷贝。
- 修改一个对象的数据成员,不会影响其他Sales_data的对象。
C++11新标准规定,可以为数据成员提供一个类内初始值。创建对象时,类内初始值将用于初始化数据成员。没有初始化的成员将被默认初始化。
当定义Sales_data对象时,units_sold和revenue都将初始化为0,bookNo将初始化为空字符串。
类内初始值的限制:
- 或者放在花括号里
- 或者放在等号右边
- 记住不能使用圆括号