2. Convert output function of Vehicle to abstract class.
1. Copy the previous program to a new file.
#include <iostream>
using namespace std;
class Vehicle{
private:
string *brand;
public:
Vehicle(){
brand=new string;
*brand="TBD";
}
Vehicle(string z){
brand=new string;
*brand=z;
}
void output(){
cout<< "Brand: "<<*brand<<endl;
}
void setBrand(string z){
*brand=z;
}
string getBrand(){
return *brand;
}
};
class Car:public Vehicle{
private:
int *weight;
public:
Car():Vehicle(){
weight=new int;
*weight=0;
}
Car(string b, int w):Vehicle(b){
weight=new int;
*weight=w;
}
void output(){
cout << "Brand: " << getBrand() << " Weight: " << *weight << endl;
}
void setWeight(int w){
*weight=w;
}
int getWeight(){
return *weight;
}
};
class Boat:public Vehicle{
private:
int *hullLength;
public:
Boat():Vehicle(){
hullLength=new int;
*hullLength=0;
}
Boat(string b, int h):Vehicle(b){
hullLength=new int;
*hullLength=h;
}
void output(){
cout << "Brand: " << getBrand() << " hullLength: " << *hullLength << endl;
}
void sethullLength(int h){
*hullLength=h;
}
int gethullLength(){
return *hullLength;
}
2. Convert output function of Vehicle to abstract class.
3. Override output function of Car and Boat class.
Use following main() to test your function.
int main(){
Vehicle *a;
a = new Car("Honda",2000);
a->output(); // Brand:Honda Weight: 2000
a = new Boat("Baja",100);
a->output(); // Brand:Baja hullLength: 100
}
Output from main:
Brand: Honda Weight: 2000
Brand: Baja hullLength: 100
Trending now
This is a popular solution!
Step by step
Solved in 3 steps with 1 images