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