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

slide: Using const to protect access