-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDiamond_Problem.cpp
More file actions
120 lines (92 loc) · 2.93 KB
/
Diamond_Problem.cpp
File metadata and controls
120 lines (92 loc) · 2.93 KB
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
#include<iostream>
using namespace std;
class Vehicle{
protected:
string name;
double speed;
public:
Vehicle(){
this->speed = 0;
}
Vehicle(string name, double speed){
this->name = name;
this->speed = speed;
}
string getName(){
return this->name;
}
void setName(string name){
this->name = name;
}
double getSpeed(){
return this->speed;
}
void setSpeed(double speed){
this->speed = speed;
}
};
class AirVehicle: virtual public Vehicle{
protected:
int noOfPropellers;
public:
AirVehicle(): Vehicle(){
this->noOfPropellers = 0;
}
AirVehicle(string name, double speed, int noOfPropellers): Vehicle(name, speed){
this->noOfPropellers = noOfPropellers;
}
int getNoOfPropellers(){
return this->noOfPropellers;
}
void setNoOfPropellers(int noOfPropellers){
this->noOfPropellers = noOfPropellers;
}
void moveOnAir(){
cout << this->name << " is moving on the air with speed: " << this->speed
<< " using " << this->noOfPropellers << " propellers..." << endl;
}
};
class WaterVehicle: virtual public Vehicle{
protected:
int noOfTurbines;
public:
WaterVehicle(): Vehicle(){
this->noOfTurbines = 0;
}
WaterVehicle(string name, double speed, int noOfTurbines): Vehicle(name, speed){
this->noOfTurbines = noOfTurbines;
}
int getNoOfTurbines(){
return this->noOfTurbines;
}
void setNoOfTurbines(int noOfTurbines){
this->noOfTurbines = noOfTurbines;
}
void moveOnWater(){
cout << this->name << " is moving on the water with speed: " << this->speed
<< " using " << this->noOfTurbines << " turbines..." << endl;
}
};
class HybridVehicle: public AirVehicle, public WaterVehicle{
public:
HybridVehicle(): AirVehicle(), WaterVehicle(){
}
HybridVehicle(string name, double speed, int noOfPropellers, int noOfTurbines): AirVehicle(name, speed, noOfPropellers), WaterVehicle(name, speed, noOfTurbines){
this->name = name;
this->speed = speed;
}
void moveOnAirWater(){
cout << this->name << " is moving on the air and water with speed: " << this->speed
<< " using " << this->noOfPropellers << " propellers and " << this->noOfTurbines
<< " turbines..." << endl;
}
};
int main(){
AirVehicle helicopter("Helicopter", 200.23, 2);
WaterVehicle ship("Titanic", 122.23, 4);
helicopter.moveOnAir();
ship.moveOnWater();
HybridVehicle airCruise("AirCruise", 400.45, 3, 5);
airCruise.moveOnAirWater();
return 0;
}