Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.191.202.45] |
|
Сообщ.
#1
,
|
|
|
имеем класс
class cDirection{ private: cDirection(): fward( 0 ), bward( 0 ){ } public: const unsigned short fward; const unsigned short bward; cDirection( unsigned short forward, unsigned short backward ): fward( forward ), bward( backward ){ } }; и строчку там же, чуть ниже ( все это в .h ) const static cDirection rdLeft = cDirection( 0, 4 ); при запуске проги конструктор вызывается 4 раза, по завершении, если деструктор прописать, туда тоже 4 раза попадаю. Может кто разъяснит почему 4, а не 1? зы если еще rdRight прописать то будет 8 вызовов. |
Сообщ.
#2
,
|
|
|
Видимо, ровно столько раз, сколько модулей у тебя включает этот файл. Убери объявление переменной из .h-файла, и перенеси ее в один из .cpp файлов, а в .h-файле перед ней укажи extern:
// В .h-файле: extern const cDirection rdLeft; // В .cpp-файле const cDirection rdLeft( 0, 4 ); |