Предполагается, что каждый объект в программе при создании получает имя: ИМЯКЛАССА_N, где N номер объекта. В классе написал счетчик
class A
{
LPSTR m_lpName;
static UINT m_uCounter;
...
}
и в начале инициализирую счетчик нулем.
В конструкторе увеличиваю счетчик на единицу и создаю имя название объекта в m_lpName. Это все работает хорошо.
Проблемы начинаются, если происходит наследование
class В: public A
ведь статическую переменную нельзя проинициировать нулем снова. Поэтому нумерация экземпляров класа В продолжается с номера последнего объекта типа А. Что делать?