// File: pd.h
//
// An example of a simple private derivation


#ifndef _pd_h
#define _pd_h

#include <iostream.h>
#include <iomanip.h>
#include <stdlib.h>

class Base {
public:
   Base() : public_data(1), protected_data(2), private_data(3) {}
   int public_data ;

   void add1() { public_data++ ; }
   void print() {
      cout << public_data << " " << protected_data << " "
         << private_data << endl ;
   }

protected:

   void add2() { protected_data++ ; }
   int protected_data ;

private:
   int private_data ;

} ;


class PrivDer : private Base {
friend void buddy(PrivDer&) ;

public:
   PrivDer() : x(5) {}
   int x ;

   void pdmem() ;

   void print() {
      cout << x << " " ;
      Base::print() ;
   }
} ;


#endif

