Overloading

print



  extern void print(int);
  extern void print(float);
  

Generic class -- templates

list< T >


  template< class T > class list { ... }
  list* alist; 
  

Polymorphism by inheritance

shape



  class shape { ... };
  class circle : public shape { ... } 
  shape* s = new circle;
  

slide: Polymorphic type declarations