Listing 5 A class hierarchy that overrides some but not all overloaded virtual functions

#include <iostream.h>

class B
   {
public:
   virtual void f(int i);
   virtual void f(long L);
   virtual void f(char *up);
   };

void B::f(int i)
   {
   cout << "B::f(int i = << i << ")\n";
   }

void B::f(long L)
   {
   cout << "B::f(long L) = " << L <<")\n";
   }

void B::f(char *p)
   {
   cout << "B::char *p = \"" << p << "\")\n";
   }

class C : public B
   {
public:
   void f(int i);               // virtual
   };

void C::f(int i)
   {
   cout << "C::f(int i = "<< i<<")\n";
   }

class D : public C
   {
public:
   void f(long L);              // virtual
   };

void D::f(long L)
   {
   cout << "D::f(long L = "<< L <<")\n";
   }

// End of file