We discussed in the class that during the design, you may need a class that serves as an interface for its derived classes, but you would not create any instance of that class. Such a class is called an abstract class. The UML class diagram shown below shows a class hierarchy starting from the Vehicle class which is an abstract class. Write a program to implement this class hierarchy such that the given code in the main function runs without error. Vehicle Bus Car Truck IntraCityBus InterCityBus int main() { Vehicle* V[] = { new Bus, new Car, new Truck, new IntraCityBus, new InterCityBus }; for (int i = 0; i < 5; i++) { cout<< V[i]->move() <
We discussed in the class that during the design, you may need a class that serves as an interface for its derived classes, but you would not create any instance of that class. Such a class is called an abstract class. The UML class diagram shown below shows a class hierarchy starting from the Vehicle class which is an abstract class. Write a program to implement this class hierarchy such that the given code in the main function runs without error.
Vehicle
Bus
Car
Truck
IntraCityBus
InterCityBus
int main() {
Vehicle* V[] = {
new Bus,
new Car,
new Truck,
new IntraCityBus,
new InterCityBus
};
for (int i = 0; i < 5; i++) {
cout<< V[i]->move() <<endl;
}
return 0;
}
Your program should produce an output as the following:
Bus: Moves to carry a large number of people
Car: Moves to carry a small number of people
Truck: Moves to transport goods
Intra-City Bus: Intra-City Bus: Moves to carry a large number of people between two areas of a city
Inter-City Bus: Inter-City Bus: Moves to carry a large number of people between two cities
Requirements:
- • The names of the classes (Bus, car, etc) in the above output cannot be hard-coded (instead, you may have a data member to store the name)
5
- • The output shown for IntraCityBus and InterCityBus must be obtained in such a way that their respective move functions must call the parent class function to get the first part of the output and then append the remaining part (e.g., for IntraCityBus, “Moves to carry a large number of people” must be returned by the parent function while “between two areas of a city” must be appended by the child
using C++
Step by step
Solved in 2 steps with 1 images