#include <iostream>
using namespace std;
class Vehicle
{
protected:
int m_nWheels; // 车轮个数
double m_nWeight; // 车重
public:
Vehicle(int nWheels, double nWeight)
: m_nWheels(nWheels)
, m_nWeight(nWeight)
{
}
// 输出信息
virtual void OutputInfo()
{
cout<<"车轮个数: "<<m_nWheels<<endl;
cout<<"车重: "<<m_nWeight<<endl;
}
};
class Car : public Vehicle
{
private:
int m_nPassengers; // 载人数
public:
Car(int nWheels, int nWeight, int nPassengers)
: Vehicle(nWheels, nWeight)
, m_nPassengers(nPassengers)
{
}
// 输出信息
virtual void OutputInfo()
{
Vehicle::OutputInfo();
cout<<"载人数: "<<m_nPassengers<<endl;
}
};
class Truck : public Vehicle
{
private:
int m_nPassengers; // 载人数
double m_nPayload; // 载重量
public:
Truck(int nWheels, int nWeight, int nPassengers, double nPayload)
: Vehicle(nWheels, nWeight)
, m_nPassengers(nPassengers)
, m_nPayload(nPayload)
{
}
// 输出信息
virtual void OutputInfo()
{
Vehicle::OutputInfo();
cout<<"载人数: "<<m_nPassengers<<endl;
cout<<"载重量: "<<m_nPayload<<endl;
}
};
///
int main(int argc, char* argv[])
{
Vehicle* pVehicle = NULL;
Vehicle vehicle(4, 2);
Car car(4, 3, 5);
Truck truck(6, 5, 25, 5);
// 输出信息
pVehicle = &vehicle;
pVehicle->OutputInfo();
cout<<endl;
pVehicle = &car;
pVehicle->OutputInfo();
cout<<endl;
pVehicle = &truck;
pVehicle->OutputInfo();
cout<<endl;
return 0;
}