Q1. Consider a hierarchy of classes representing vehicles. The base class is Vehicle, and there are two intermediate derived classes, LandVehicle and WaterVehicle. LandVehicle has a derived class, Car, while WaterVehicle has a derived class, Boat. All classes have a drive() method which is overridden in the derived classes. The base class, Vehicle, should be an abstract class. Implement the above hierarchy of classes in C++. You can use any appropriate access modifiers, data members and member functions as deemed necessary. Make sure to use virtual functions where appropriate to allow polymorphic behavior. Write a main program that creates a vector of base class pointers, pointing to objects of each class (use dynamic memory allocation). The program should then iterate over the vector and call the appropriate drive() method on each object, outputting the result. Finally, the program should deallocate the objects to avoid memory leaks [Hint: delete operator can be used in a for loop].

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question

Check the image for question

Q1. Consider a hierarchy of classes representing vehicles. The base class is Vehicle, and there are two
intermediate derived classes, LandVehicle and WaterVehicle. LandVehicle has a derived class, Car,
while Water Vehicle has a derived class, Boat. All classes have a drive() method which is overridden
in the derived classes. The base class, Vehicle, should be an abstract class.
Implement the above hierarchy of classes in C++. You can use any appropriate access modifiers, data
members and member functions as deemed necessary. Make sure to use virtual functions where
appropriate to allow polymorphic behavior.
Write a main program that creates a vector of base class pointers, pointing to objects of each class
(use dynamic memory allocation). The program should then iterate over the vector and call the
appropriate drive() method on each object, outputting the result. Finally, the program should
deallocate the objects to avoid memory leaks [Hint: delete operator can be used in a for loop].
Transcribed Image Text:Q1. Consider a hierarchy of classes representing vehicles. The base class is Vehicle, and there are two intermediate derived classes, LandVehicle and WaterVehicle. LandVehicle has a derived class, Car, while Water Vehicle has a derived class, Boat. All classes have a drive() method which is overridden in the derived classes. The base class, Vehicle, should be an abstract class. Implement the above hierarchy of classes in C++. You can use any appropriate access modifiers, data members and member functions as deemed necessary. Make sure to use virtual functions where appropriate to allow polymorphic behavior. Write a main program that creates a vector of base class pointers, pointing to objects of each class (use dynamic memory allocation). The program should then iterate over the vector and call the appropriate drive() method on each object, outputting the result. Finally, the program should deallocate the objects to avoid memory leaks [Hint: delete operator can be used in a for loop].
Expert Solution
steps

Step by step

Solved in 3 steps with 4 images

Blurred answer
Knowledge Booster
Software Development
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education