说明符和限定符:
下面是存储说明符:
auto register static extern mutable
下面是cv限定符:
const volatile
volatile 关键字表明,即使程序代码没有对内存单元进行修改,其值也可能发生变化。听起来似乎很神秘,实际上并非如此。
对象和类
下面是最重要的OOP特性:
1、抽象
2、封装和数据隐藏
3、多态
4、继承
5、代码的可重用性
用户与数据交互的方式有3种,初始化、更新和报告——这就是用户接口。
构造函数:
两种使用构造函数来初始化对象的方式。第一种方式是显式地调用构造函数:
Stock food = Stock ("World Cabbage",250,1.25);
这将food对象的company成员设置为字符串“World Cabbage”,将shares成员设置为250,依此类推。
另一种方式是隐式地调用构造函数:
Stock garment ("Furry Mason",50,2.5);
定义默认构造函数的方式有两种。一种是给已有构造函数的所有参数提供默认值:
Stock (const char * co = "Error",int n = 0,double pr = 0.0);
另一种方式是通过函数重载来定义另一个构造函数——一个没有参数的构造函数:
Stock();
由于只能有一个默认构造函数,因此不要同时采用这两种方式。
析构函数:
和构造函数一样,析构函数的名称也很特殊:在类名前加上(~)。因此,Stock类的析构函数为~Stock()。另外,和构造函数一样,析构函数也可以没有返回值和声明类型。
接口和现实小结
可以通过修改类实现来消除对名称的长度限制。方法之一是增加数组长度,但这将导致存储空间被浪费。另一种方法是使用string而不是字符数组,因而依赖string对象自动调整大小的功能。