Посчитать объекты?
От: DukeNukem3D Россия  
Дата: 17.07.08 05:37
Оценка:
Есть класс:

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.

Как сделать правильно?
С уважением, Андрей
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.