inherit/boat.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 BOAT_HPP
#define BOAT_HPP

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

namespace CPPBook {

/* Boat class
 * - suitable for inheritance
 */
class Boat {
  protected:
    int sm;                      // sea miles traveled

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

    // travel a certain distance
    virtual void travel(int d) {
        sm += d;                 // add additional sea miles
    }

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

    virtual ~Boat() {            // virtal destructor
    }
};

}  // namespace CPPBook

#endif    // BOAT_HPP