函数的继承,自我总结经典~!
基类与派生类
#include<iostream.h>
class A
{
public:
void ss(){cout<<"AA"<<endl;}
};
class B:public A
{
public:
void ss1(){cout<<"BB"<<endl;}
};
void main()
{
A a:
B b;
b.ss();//因为基类A公有继承派生类B,所以派生类对象能够调用基类内的公有部分
b.ss1();
a.ss();
//a.ss1(); 错误写法因为基类的对象只能调用基类里公有里的函数,不能调用派生类公有部分
}
如果上面该写成class B:private A
就是基类A私有继承派生类B,所以派生类对象不能够调用基类内的公有部分。当然派生类也不能够调用基类里的保护部分。
总结:公有继承public的时候,基类里的公有和保护部分相当于派生类里的公有和保护部分,派生类对象能够调用基类里的公有部分。
私有继承private的时候,基类里的公有和保护部分相当于派生类里的私有部分,派生类对象不能调用基类里的公有部分。
保护继承protected的时候,基类里的公有和保护部分相当于派生类的保护部分,派生类能够调用基类里的公有与保护部分,而派生类对象不能调用。
派生类对象只能调用公有部分,不能调用私有和保护部分。
构造函数继承的时候,系统会按照顺序自动先调用基类,在调用派生类。