Derived Classes

program, the objects are instantiated from an?inherited class and the intent of this program?
is to illustrate that there is nothing magic?about a derived class.

/*******************************************************
*     MYCPLUS Sample Code - https://www.mycplus.com     *
*                                                     *
*   This code is made available as a service to our   *
*      visitors and is provided strictly for the      *
*               purpose of illustration.              *
*                                                     *
* Please direct all inquiries to saqib at mycplus.com *
*******************************************************/
#include 

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[3];
int index;


   for (index = 0 ; index < 3 ; index++) {
      sedan[index].initialize(4, 3500.0, 5);
      cout << "The sedan carries " << sedan[index].passengers() <<
                                                    " passengers.\n";
      cout << "The sedan weighs " << sedan[index].get_weight() <<
                                                        " pounds.\n";
      cout << "The sedan's wheel loading is " <<
             sedan[index].wheel_loading() << " pounds per tire.\n\n";
   }


truck *semi;


   semi = new truck;
   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";
   delete semi;
}






              // 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);
}






// Result of execution
//
// 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 sedan carries 5 passengers.
// The sedan weighs 3500 pounds.
// The sedan's wheel loading is 875 pounds per tire.
//
// 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.929072 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