『代码』··By/蜜汁炒酸奶

继承练习之汽车类—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;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151

预览
Loading comments...
0 条评论

暂无数据

example
预览