На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: Qraizer, Hsilgos
  
> Почему запускается 4 раза конструктор , для const static класса
    имеем класс

    ExpandedWrap disabled
      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 )

    ExpandedWrap disabled
      const static cDirection rdLeft = cDirection( 0, 4 );


    при запуске проги конструктор вызывается 4 раза, по завершении, если деструктор прописать, туда тоже 4 раза попадаю. Может кто разъяснит почему 4, а не 1? :unsure:

    зы если еще rdRight прописать то будет 8 вызовов.
      Видимо, ровно столько раз, сколько модулей у тебя включает этот файл. Убери объявление переменной из .h-файла, и перенеси ее в один из .cpp файлов, а в .h-файле перед ней укажи extern:
      ExpandedWrap disabled
         
        // В .h-файле:
        extern const cDirection rdLeft;
         
        // В .cpp-файле
        const cDirection rdLeft( 0, 4 );
      Сообщение отредактировано: Flex_Ferrum -
      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
      0 пользователей:


      Рейтинг@Mail.ru
      [ Script execution time: 0,0231 ]   [ 16 queries used ]   [ Generated: 27.04.24, 06:59 GMT ]