礼制把人从远及近分了不同的层级,对待每个层级需要用不同的方式。同样,类也借鉴了这样的思想,采用一系列手段确保亲疏有别。
public,顾名思义就是完全公之于众的内容,可以是类的数据信息,但大多数情况是类的能力,就像是一个人印在名片上的姓名和职务。
private,私有的私有多隐私?一般情况下是只有这个类自己掌握和使用。但正如凡事有例外,死党(friend class)也是可以获得的。另外,警察审讯(friend function)也是要说的。除此之外,就是儿子(继承类)也不能掌控它。
protected,保护之权限介于以上两者之间,对于儿子(继承类)、死党(friend class)、警察审讯(friend function)都是放开的,但外部不会得知。
除此之外,对于同一个类实例化的多个对象,是可以访问其他对象的数据信息的,如同孙悟空拔下的猴毛变成的小猴子可以相互协作。
另外,如同人类社会中的各种制度与约束,类也用了const、static等限定词,使类的行为更可控。const类型的成员变量只能依靠初始化列表来赋值,而const类型成员函数不能修改成员变量。static类型的成员变量是类的所有对象共用,而static类型的成员函数除了共用,还能被外部直接按类引用,但它不能使用非static类型的成员变量,实际用途是公用函数。
计算机的世界是现实世界的映射,遵循着同样的道,道法自然,顺势而为,才能运用自如,恰到好处。