私有继承是has -a 的关系,如基类Motor (发动机),派生类Car,(汽车有发动机)
#include <iostream>
#include <string.h>
using namespace std;
class Motor
{
public:
void SwitchIgnition()
{
cout <<"Ignition ON "<< endl;
}
void PumFuel()
{
cout <<"Fuel in cylinders "<<endl;
}
void FireCylindes()
{
cout <<"Vroom" <<endl;
}
};
class Car: private Motor
{
public:
void Move()
{
SwitchIgnition();
PumFuel();
FireCylindes();
}
};
int main()
{
Car myDreamCar;
myDreamCar.Move();
return 0;
}
输出:
Ignition ON
Fuel in cylinders
Vroom
共有函数Car::Move()调用了基类Motor的成员函数,如在main()中插入下述代码:
myDreamCar.PumpFule();
将无法通过编译