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); } };