Writing a new class that is derived from another class.You will be given the code for a Car class. Your job is to write a CustomCar class that is derived from Car and adds new features to it.The existing Car class will allow you to create a specific model of a car, but that car will always be the color black and have no features.
You need to create a CustomCar class. Put the specification for it in the CustomCar.h file and the implementation for it in the CustomCar.cpp file. The CustomCar class should extend the Car class and have the following new features:
- It will need to have its own constructor. The constructor should simply call the Car constructor and then set the private features variable to be empty. See the book for an example.
- It will need a SetColor method. This method should simply set the Car's color. The Car's color is a Protected variable. This means that the derived class can change it.
- It will need a SetFeatures method. This method should set the features in a private variable of the CustomCar class
- It will need to have a PrintInfo method. This method should call the existing Car PrintInfo method, and then print the features info after that
- It will need to have a private features variable to store the text of the features
Test 1 checks for the output of the Red color Work on getting this working first.
Test 2 checks for the output of the features. Work on getting this working next.
Driver Program: Paste this into your main.cpp
// YOUR NAME HERE
#include
#include
#include "Car.h"
#include "CustomCar.h"
using namespace std;
Car *theCars[100];
int theCarsCount = 0;
void AddCarToList(Car* car){
theCars[theCarsCount] = car;
theCarsCount++;
}
void PrintCarList(){
for(int i=0; i theCars[i]->PrintInfo();
}
void main()
{
// Use this code as is:
cout << "Hello World!" << endl;
Car *carA = new Car("Basic");
Car *carB = new Car("Model-T");
CustomCar *carC = new CustomCar("Sporty");
carC->SetColor("Red");
carC->SetFeatures("Sun-Roof & Leather Seats");
AddCarToList(carA);
AddCarToList(carB);
AddCarToList(carC);
PrintCarList();
}
Here is the standard car.h class:
#include
#include
using namespace std;
class Car {
public:
Car(string model);virtual void PrintInfo();
protected:
string Model;string Color;};
Here is standard car.cpp:
#include "Car.h"
Car::Car(string model) {
Model = model;
Color = "Black";
}
void Car::PrintInfo() {
cout << "CAR INFO" << endl;
cout << " Model: " << Model << endl;
cout << " Color: " << Color << endl;
}