文件中有:汽车类(汽车的总体信息)、引擎类(汽车排量等相关信息)、小车类(车载人数、排量信息等)、卡车类(车载人数、排量信息、载重量、车轮数、车重等),里面包含了公有及私有继承的实现。
/*
功能:汽车类
日期:2013-11-25
*/
#include <iostream>
using namespace std;
/**********************************************************/
//汽车类
class Vehicle
{
public:
Vehicle(int wheels=0,double weight=0):
m_iWheels(wheels),m_iWeight(weight){};
int getWheels()const; //获取车轮个数
double getWeight()const; //获取车重
protected:
int m_iWheels; //车轮个数
double m_iWeight; //车重
};
//引擎类
class Engine
{
public:
Engine(double emissions=0):
m_iEmissions(emissions){};
void setEmissions(double emissons); //设置排量信息
double getEmissions()const; //获取排量信息
private:
double m_iEmissions; //排量信息
};
//小车类
class Car : public Vehicle,private Engine
{
public:
Car(int wheels,double weight);
void setPassengerload(int passenger_load); //设置车载人数
int getPassengerload()const; //获取车载人数
void setEmissions(double emissons); //设置排量信息
double getEmissions()const; //获取排量信息
private:
int m_ipassenger_load; //车载人数
};
//卡车类
class Truck :protected Vehicle,private Engine
{
public:
Truck(int wheels,double weight,double emissions);
void setPassengerload(int passenger_load); //设置车载人数
int getPassengerload()const; //获取车载人数
void setPayload(double payload); //设置载重量
double getPayload()const; //获取载重量
int getWheels()const; //获取车轮个数
double getWeight()const; //获取车重
double getEmissions()const; //获取排量信息
private:
int m_iPassenger_load; //车载人数
double m_iPayload; //载重量
};
/**********************************************************/
//汽车类
int Vehicle::getWheels()const
{
return m_iWheels;
}
double Vehicle::getWeight()const
{
return m_iWeight;
}
//引擎类函数
void Engine::setEmissions(double emissons)
{
m_iEmissions = emissons;
}
double Engine::getEmissions()const
{
return m_iEmissions;
}
//小车类函数
Car::Car(int wheels=0,double weight=0):Vehicle(wheels,weight)
{
}
void Car::setPassengerload(int passenger_load)
{
m_ipassenger_load = passenger_load;
}
int Car::getPassengerload()const
{
return m_ipassenger_load;
}
void Car::setEmissions(double emissons)
{
Engine::setEmissions(emissons);
}
double Car::getEmissions()const
{
return Engine::getEmissions();
}
//卡车类
Truck::Truck(int wheels=0,double weight=0,double emissions=0):Vehicle(wheels,weight)
{
Engine::setEmissions(emissions);
}
void Truck::setPassengerload(int passenger_load)
{
m_iPassenger_load = passenger_load;
}
int Truck::getPassengerload()const
{
return m_iPassenger_load;
}
void Truck::setPayload(double payload)
{
m_iPayload = payload;
}
double Truck::getPayload()const
{
return m_iPayload;
}
int Truck::getWheels()const
{
return m_iWheels;
}
double Truck::getWeight()const
{
return m_iWeight;
}
double Truck::getEmissions()const
{
return Engine::getEmissions();
}
/**********************************************************/
int main(void)
{
Car c1(4,300);
c1.setPassengerload(5);
c1.setEmissions(200);
Truck T1(6,1000,300);
T1.setPassengerload(2);
T1.setPayload(900);
cout<<"c1的信息为:"<<endl<<"车轮个数:"<<c1.getWheels()<<" "<<"车重:"<<c1.getWeight()<<endl;
cout<<"排量信息:"<<c1.getEmissions()<<" "<<"车载人数:"<<c1.getPassengerload()<<endl<<endl;
cout<<"T1的信息为:"<<endl<<"车轮个数:"<<T1.getWheels()<<" "<<"车重:"<<T1.getWeight()<<endl;
cout<<"排量信息:"<<T1.getEmissions()<<" "<<"车载人数:"<<T1.getPassengerload()<<endl;
cout<<"载重量:"<<T1.getPayload()<<endl<<endl;
system("pause");
return 0;
}