全局变量和成员变量都提供了一种共享和通信机制:
- 只不过成员变量的共享和通信仅限于类内部,全局变量则是全局可见;
- 更为重要的是,类的访问修饰符概念为成员变量的访问和修改施加了更多的限制,也即在面向对象的范畴里它是类型安全的。
1. 再论面向过程和面向对象
首先一点,C++ 是语言联邦,支持包括面向过程、基于对象、面向对象的多编程范式。
面向对象的三大特性:封装、继承、多态。
2. 变量或者类属性的选择
一个对象类,当然不只有限的属性,如果要追究和细分下去,能找出无数个属性出来。显然当我们进行某些类的设计时,首先需要定义其成员变量。成员变量对应于对象类的属性。成员变量的选择和确定的关键,看的该变量是否与实际问题的解决密切相关,该变量是否是解决问题所涉及的变量。
比如一个车辆排队系统,汽车的属性,显然需要:
- 到达时间;
- 优先级;
- …
而与颜色、车重,等等属性无关。