专栏首页WindCoder继承练习之汽车类—C++

继承练习之汽车类—C++

文件中有:汽车类(汽车的总体信息)、引擎类(汽车排量等相关信息)、小车类(车载人数、排量信息等)、卡车类(车载人数、排量信息、载重量、车轮数、车重等),里面包含了公有及私有继承的实现。

/*
功能:汽车类
日期: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;
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 计算三角形面积

    汐楓
  • where in与join 查询

    Oracle:当前所用版本中,限制in中的参数不能超过 1000个。当超出时会被报错"ORA-01795异常(where in超过1000)的解决"。

    汐楓
  • 按关键字升序排序—C++

    汐楓
  • 【CV学习2.2】 倒数与梯度

    EdenChen
  • 谷歌旅游AI小助手: 不只订酒店,想去哪玩、爱吃什么TA都知道!

    在奢华旅游的世界里,目前压倒性的两个超能力是:个性化和直觉。酒店、应用程序或旅游公司对用户的需求和愿望做出的反应越好——最好是在用户的需求和愿望出现之前就做出预...

    新智元
  • 统计学习导论 Chapter5 -- Resampling Methods

    Book: An Introduction to Statistical Learning with Applications in R http:...

    用户1148525
  • SQL查询提速秘诀,避免锁死数据库的数据库代码

    由于数据库领域仍相对不成熟,每个平台上的 SQL 开发人员都在苦苦挣扎,一次又一次犯同样的错误。当然,数据库厂商在取得一些进展,并继续在竭力处理较重大的问题。

    数据和云
  • 洛谷P1742 最小圆覆盖(计算几何)

    再枚举一个点\(j\),如果该点在圆内继续,否则用\(i, j\)构造出的圆替换出之前的圆。

    attack
  • (送福利)BDP绘制微博转发动态热力图

    先把效果图放上来,酷炫压场。看完本文,你就能轻松实现这个动态效果,全程只需几分钟!

    古柳_DesertsX
  • eva0.4.1源码看看3

    py3study

扫码关注云+社区

领取腾讯云代金券