首先不考虑继承的类型,单就类定义和类对象访问权限而言,有如下的一些值得注意的点
1,在基类中,public和private标号的含义是用户代码可以访问public定义的变量和函数,但不能访问private的定义。也就是说private类型只能在类内部进行访问,该类所定义的对象也不能访问(类的对象属于用户代码)。但private类型可以被其友元访问。
2,派生类也是这样,只能访问public成员不能访问private成员,这里包括派生类内部和派生类对象。
3,有些基类的成员希望被派生类访问,但不希望被其他用户代码访问,这里定义成protected类型,这中类型,可以被基类的成员访问,被派生类的成员访问,但不能被基类的对象和派生类的对象访问。
然后看类的继承后方法属性变化
private 属性不能够被继承。
使用private继承,父类的protected和public属性在子类中变为private;
使用protected继承,父类的protected和public属性在子类中变为protected;
使用public继承,父类中的protected和public属性不发生改变;
使用private继承,父类的protected和public属性在子类中变为private;
使用protected继承,父类的protected和public属性在子类中变为protected;
使用public继承,父类中的protected和public属性不发生改变;
注意:使用class保留字定义的派生类默认具有private继承,而用struct保留字定义的类默认具有public继承