#ifndef _ordered_h #define _ordered_h class Ordered { // an abstract class public: virtual ~Ordered() =0 ; // virtual destructor virtual Ordered *clone() =0 ; // make a copy virtual int cmp(Ordered *) =0 ; // compare two Ordered objects virtual void print() =0 ; // print to stdout virtual int *id() =0 ; // run-time typing } ; #endif