#include using namespace std; class Vehicle{ protected: int number; double gas; public: virtual void show()=0; // pure virtual function }; // derived class Car class Car: public Vehicle{ public: Car(int n=1, double g=9.0); void show(); // overriding function }; // derived class Truck class Truck: public Vehicle{ public: Truck(int n, double g); void show(); // overriding function }; int main() { cout << "test of abstract class with pure virtual functions" << endl; //Vehicle myvehicle; //this is not allowed Car mycar(23, 92.0); Truck mytrack(102,198.3); mycar.show(); mytrack.show(); return 0; } Car::Car(int n, double g) // constructor with default argument { number = n; gas=g; } Truck::Truck(int n, double g) { number = n; gas=g; } void Car::show() { cout << "This is Car (number, gas) =" << number << "," <