C++中的成员分为三种类型:公有成员,私有成员,保护成员。
如果不特别指定,类里所有的成员都是公有(Public)的,不用特地声明。但是私有(Private)成员则是要一定声明的。
这三种类型才成员的区别在于,对于本类来说:
公有成员,外部可以访问的成员。
私有成员,外部不可以访问的成员。
保护成员,外部不可以访问的成员。
乍看起来,私有成员与保护成员的访问权限是相同的,使用私有成员就行了,貌似没有必要再多出来一个保护成员。
实际上,保护成员与私有成员的区别体现在继承上。
继承分为:公有继承,私有继承,保护继承。
公有继承,基类的公有成员和保护成员作为派生类的公有成员和保护成员,外部(派生类的对象)可以访问公有成员,无法访问保护成员;
私有继承,基类的公有成员和保护成员作为派生类的私有成员,外部(派生类的对象)不可以访问;
保护继承,基类的公有成员和保护成员作为派生类的保护成员,外部(派生类的对象)不可以访问;