C++类支持的访问标号包括public、private、protected。
在public之后定义的成员成为共有成员,可以由程序的所有部分访问;在private之后定义的成员成为私有成员,只能由本类访问;在protected之后定义的成员成为保护成员,只能由本类及本类的后代类访问。
在类的定义中,一个访问标号可以出现在任意成员定义之前且出现的次数没有限制。
约束条件是:每个访问标号指定了随后的成员定义的访问级别,这个指定的访问级别持续有效。直至遇到下一个访问标号或看到类定义体的右花括号。
class 关键字定义的类和用struct 定义的类有什么不同?
区别在于默认的访问标号不同:如果类中某成员的定义之前没有出现任何访问标号,则在用class 关键字定义的类中,该成员默认为 private 成员;而在struct 关键字定义的类中,该成员默认为public。
什么是封装?何用?
封装是一种低层次的元素组合起来形成新的、高层次实体的技术。例如,函数是封装的一种形式:函数所执行的细节行为被封装在函数本身这个更大的实体中;类也是一个封装的实体:它代表若干成员的聚集,大多数类类型隐藏了实现该类型的成员。
封装隐藏了内部元素的实现细节,其主要优点在于:避免类内部出现无意的、可能破坏对象状态的用户级错误;使得在修改类的实现时只要保持类的接口不变,就无需改变用户级代码。因此,封装是有用的。