公有继承:
左边的是在基类中的->右边的是继承到派生类后
public->public
protected->protected
private->无法访问
除了private其他的都可以直接访问的
私有继承:
public->private
protected->private
private->无法访问
在私有继承中除了private其他的也是可以访问的
私有基类的公用成员和保护成员在私有派生类中的访问属性相当于派生类中的私有成员,即派生类的成员函数能访问它们,而在派生类外(main函数等都算)不能访问它们,私有基类的私有成员则无法访问
保护继承:
保护继承中:垂直访问相当于公有继承,水平访问相当于私有继承(
水平访问就是继承类均属于基类的同一层的子类,然后他们之间的相互访问(类似于兄弟之间的对话),;
垂直访问,就是子类访问它的父类,它的父类访问它的祖父类,以此类推(类似与父子之间的对话);
)
public->protected
protected->protected
private->无法访问
派生类是无法访问基类的私有成员的,如果想访问,要么把私有成员改成公有或者保护的,要么在基类中写一个函数把这个私有成员return出去;
派生类的对象只能直接访问基类的公有继承的公有成员;
(基类A,派生类B,)
class A{
public:int a;
protected:int e;
private:int f;
}
class B:public A
{
}
B.b;
b.a;//只能点出来a,其他的都是在派生类里的函数里用的,并不能直接调用;