public是类中的对外接口,任何地方都可以调用。
class A{
public:
void funcA();
private:
void funcB();
protected:
void funcC();
};
A a; a.funcA();//正确,funcA写在访问说明符public之下。
private是类中隐藏的实现,只用成员函数可以调用。可以通过声明友元函数或者友元类使得外部函数或者类可以访问该类的private成员。
a.funcB();//错误,funB写在访问说明符private之下,不能在外部访问该函数。
void funcA(){ fucB();}//正确,类内部的函数可以访问访问说明符private之下的成员函数。
protected受保护的。在类的继承中,派生类不一定有权访问基类的私有成员。类的设计者希望有些成员函数能被派生类访问,但是依然禁止其他用户访问。这就可以使用protected来修饰这些成员/成员函数。
class B:public A{
public:
void funcD(){funcC(); } //正确,调用基类的protected修饰符下成员函数。
void funcE(){funcB();} //错误,调用基类的privated修饰符下的成员函数。
};