Есть класс:
class clsTime
{
private:
short siHH, siSS, siMM;
public:
clsTime() : siHH ( 0 ), siMM ( 0 ), siSS ( 0 )
{
}
clsTime ( short h, short m, short s ) : siHH ( h ), siMM ( m ), siSS ( s )
{
}
void <...>
};
Я хочу посчитать сколько объектов создано под этим классом. Вроде бы всё просто — добавляем свойства:
class clsTime
{
private:
<...>
static unsigned int uiCounter;
unsigned int uiNum;
А в конструкторах пишем:
<...>
public:
clsTime() : siHH ( 0 ), siMM ( 0 ), siSS ( 0 )
{
uiCounter++;
uiNum = uiCounter;
}
clsTime ( short h, short m, short s ) : siHH ( h ), siMM ( m ), siSS ( s )
{
uiCounter++;
uiNum = uiCounter;
}
<...>
Получается, что uiNum и будет показывать порядковый номер вновь созданного объекта, однако при записи:
TimeObj3 = TimeObj1 + TimeObj2;
Номер TimeObj3 инкрементируется и становится равным не 3, а 4.
Как сделать правильно?