Overloading
extern void print(int);\fbox{print}
extern void print(float);
Generic class -- templates
template< class T > class list { ... }\fbox{
list<int>* alist;list<T> }
Polymorphism by inheritance
class shape { ... };\fbox{ shape }
class circle : public shape { ... } shape* s = new circle;