class counter {
  public:
  
  counter(int v = 0 ) : n(v) { init("default"); }
  counter(char* s, int v=0) : n(v) { init(s); } 
  ~counter() { delete[] id; }
  	
  char* name() { return id; }
  
  void operator++() { n = n + 1; }
  int value() { return n; }
  private:
  int n; char* id;
  void init(char* s) { 
  	id = new char[strlen(s)+1];
  	strcpy(id, s);
  	}
  };
  
  

slide: A named counter