默认为private继承;
1.派生类会继承基类的所有方法,但是以下几个情况除外:
不会继承基类的构造函数、析构函数、拷贝构造函数;
不会继承重载运算符;
不会继承友元函数,因为友元函数不属于类;
2. 私有成员:private 只有类和友元函数才可以访问私有成员;
公有成员:public 公有成员在类外是可以访问的,不需要通过公有方法。
保护成员:protected 保护成员在派生类中是可以访问的,但是类外不能访问protected成员;
3.继承的作用?
1.可以在已有类的基础上添加功能;
2.可以在继承的类中增加数据成员;
3.可以在继承的类中修改原有方法的功能;
4.继承可以分为
私有继承Private: 基类的private成员、public成员、protected成员,在派生类中分别变成private成员、private成员、private成员。
公有继承Public: 基类的private成员、public成员、protected成员,在派生类中分别变成private成员、public成员、protected成员。
保护继承Protected:基类的private成员、public成员、protected成员,在派生类中分别变成private成员、protected成员、protected成员
在以上基础下分一下两种情况(访问可以分为类内访问和类外访问)
在派生类的公有方法中调用基类的数据成员(类内访问):
私有继承:派生类的公有方法可以调用基类的public成员、protect成员、不可以调用private成员;
公有继承:派生类的公有方法可以调用基类的public成员、protect成员、不可以调用private成员;
保护继承:派生类的公有方法可以调用基类的public成员、protect成员、不可以调用private成员;
总结:
private成员只能被本类成员函数和友元函数访问,不能被派生类访问;
protected成员可以被派生类访问。
用派生类的对象访问数据成员(类外访问)
私有继承:基类的数据成员在派生类中均变成私有成员private,所以派生类的对象均不可访问其成员;
公有继承:派生类的对象只能访问其派生类中的公有成员public;(基类的private、public、protected属性在派生类中不变)
保护继承:派生类的对象均不可访问(因为基类的public成员在派生类中变成了protected成员);(基类的private成员在派生类中属性仍为private,基类的public成员在派生类中属性变为protected成员,基类的protected成员属性在派生类中不变)