inherit/car.hpp

The following code example is taken from the book
Object-Oriented Programming in C++
by Nicolai M. Josuttis, Wiley, 2002
© Copyright Nicolai M. Josuttis 2002


#ifndef CAR_HPP
#define CAR_HPP

// include header file for I/O
#include <iostream>

namespace CPPBook {

/* Car class
 * - suitable for inheritance
 */
class Car {
  protected:
    int km;                      // kilometers traveled

  public:
    // default constructor, and one-parameter constructor
    Car(int d = 0) : km(d) {     // initialize distance traveled
    }

    // travel a certain distance
    virtual void travel(int d) {
        km += d;                 // add additional kilometers
    }

    // output distance traveled
    virtual void printTraveled() {
        std::cout << "The car has traveled "
                  << km << " km " << std::endl;
    }

    // virtual destructor
    virtual ~Car() {
    }
};

}  // namespace CPPBook

#endif    // CAR_HPP