(1)一般访问限制
public 公有的,这个限制后面所定义的成员,可以被外部访问。
一般抽象出来供外部使用的接口。
private 私有的,表示定义的成员只供内部使用,外部不可以使用。
一般受保护的数据成员和内部函数都要定义为private
protected 受保护的,外部不可以使用,只能内部使用。
主要是用在类继承的时候基类定义中。
友元不受public private protected的限制
(2)友元
一般情况下应当把数据成员设置为private以限制外部访问。
但在某些情况下,可以让特定的非成员函数访问一个类的私有成员。
同时仍然阻止一般的访问。这就是友元。
友元机制允许一个类将其非共有成员的访问权限授予指定的函数或者类
友元声明以friend开始,只能出现在类定义的内部。
友元函数是能够访问类中的私有成员的非成员函数。
友元函数从语法上看,它与普通函数一样,即在定义上和调用上与普通函数一样。
友元除了前面讲过的函数以外,友元还可以是类,即一个类可以作另一个类的友元。
当一个类作为另一个类的友元时,这就意味着这个类的所有成员函数都是另一个类的友元函数。