C++ program to demonstrate Inheritance

C++ Inheritance

C++ Inheritance Example

This is a simple C++ Program to demonstrate Inheritance. Simpler methods in the classes have been changed to inline code to shorten the file considerably.

In a practical programming situation, methods that are this short should be programmed inline since the actual code to return a simple value is shorter than the code required to send a message to a non-inline method.

#include <iostream>

using namespace std;

class vehicle {
  protected:
    int wheels;
  float weight;
  public:
    void initialize(int in_wheels, float in_weight);
  int get_wheels(void) {
    return wheels;
  }
  float get_weight(void) {
    return weight;
  }
  float wheel_loading(void) {
    return weight / wheels;
  }
};

class car: public vehicle {
  int passenger_load;
  public:
    void initialize(int in_wheels, float in_weight, int people = 4);
  int passengers(void) {
    return passenger_load;
  }
};

class truck: public vehicle {
  int passenger_load;
  float payload;
  public:
    void init_truck(int how_many = 2, float max_load = 24000.0);
  float efficiency(void);
  int passengers(void) {
    return passenger_load;
  }
};

main() {
  vehicle unicycle;

  unicycle.initialize(1, 12.5);
  cout << "The unicycle has " << unicycle.get_wheels() << " wheel.\n";
  cout << "The unicycle's wheel loading is " << unicycle.wheel_loading() << " pounds on the single tire.\n";
  cout << "The unicycle weighs " << unicycle.get_weight() << " pounds.\n\n";

  car sedan;

  sedan.initialize(4, 3500.0, 5);
  cout << "The sedan carries " << sedan.passengers() << " passengers.\n";
  cout << "The sedan weighs " << sedan.get_weight() << " pounds.\n";
  cout << "The sedan's wheel loading is " << sedan.wheel_loading() << " pounds per tire.\n\n";

  truck semi;

  semi.initialize(18, 12500.0);
  semi.init_truck(1, 33675.0);
  cout << "The semi weighs " << semi.get_weight() << " pounds.\n";
  cout << "The semi's efficiency is " << 100.0 * semi.efficiency() << " percent.\n";
}
// initialize to any data desired
void
vehicle::initialize(int in_wheels, float in_weight) {
  wheels = in_wheels;
  weight = in_weight;
}
void car::initialize(int in_wheels, float in_weight, int people) {
  passenger_load = people;
  wheels = in_wheels;
  weight = in_weight;
}

void truck::init_truck(int how_many, float max_load) {
  passenger_load = how_many;
  payload = max_load;
}

float truck::efficiency(void) {
  return payload / (payload + weight);
}

Output of the C++ program

The unicycle has 1 wheel.
The unicycle's wheel loading is 12.5 pounds on the single tire.
The unicycle weighs 12.5 pounds.

The sedan carries 5 passengers.
The sedan weighs 3500 pounds.
The sedan's wheel loading is 875 pounds per tire.

The semi weighs 12500 pounds.
The semi's efficiency is 72.9291 percent.
M. Saqib: Saqib is Master-level Senior Software Engineer with over 14 years of experience in designing and developing large-scale software and web applications. He has more than eight years experience of leading software development teams. Saqib provides consultancy to develop software systems and web services for Fortune 500 companies. He has hands-on experience in C/C++ Java, JavaScript, PHP and .NET Technologies. Saqib owns and write contents on mycplus.com since 2004.
Related Post