公有继承
1、基类的公有成员和保护成员的访问属性在派生类中不变,而基类的私有成员不可直接访问。
2、能通过派生类的对象访问从基类继承的公有成员
3、无法直接访问基类的私有成员,可间接通过基类公有成员(继承过来了就是派生类的公有成员)访问基类私有成员
如:
public:
void initRectangle(float x,float y,float w,float h){
//派生类公有成员
initPoint(x,y); //基类公有成员,其中“x”、“y”是基类私有成员
this->w=w;
this->h=h;
}
私有继承
1、基类的公有成员和保护成员被继承后作为派生类的私有成员,派生类的其他成员可以直接访问它们
2、派生类的对象只能间接通过派生类的公有成员访问基类公有成员
如:
public: //派生类公有成员
float getX() const{return Point::getX();}
//“Point::getX()”是从基类继承过来的公有成员变成了派生类的私有成员
3、进一步派生的话,基类的全部成员就无法在新的派生类中被直接访问
相当于中止了基类功能的继续派生