Здравствуйте, гость ( Вход | Регистрация )
igor_bogomolov | Дата 28.9.2010, 18:36 |
Порядок инициализации в конструкторах | |
Sokoloff | Дата 28.9.2010, 16:47 |
а проблема моя в том что mIOServicePool.GetIOService() происходит раньше чем mIOServicePool(threads), понятно, что такой расклад неприятен)) по-моему, в каком порядке в обЪявлении класса члены идут в том порядке и инициализируются. Да, это так, хотя это не очевидное поведение. Вот что пишет Страуструп: Цитата(Бьерн Страуструп) Списки параметров для членов отделяются друг от друга запятыми (а не двоеточиями), а список инициализаторов для членов можно задавать в произвольном порядке: Конструкторы вызываются в том порядке, в котором они заданы в описании класса. |
|
kwisp | Дата 28.9.2010, 15:00 |
а проблема моя в том что mIOServicePool.GetIOService() происходит раньше чем mIOServicePool(threads), понятно, что такой расклад неприятен)) по-моему, в каком порядке в обЪявлении класса члены идут в том порядке и инициализируются. |
|
kilkinenator | Дата 28.9.2010, 13:08 |
Но, если ошибаюсь, тебе поможет простая перестановка местами:
нее, совсем не то)) Насчёт порядка - щас лень проверять, но вроде в каком порядке члены в списке указаны, такая последовательность и будет. вот это скорее всего так, так как изменение порядка и помогло мне. спасибо) |
|
Алексей1153 | Дата 28.9.2010, 12:59 |
вообще -то, из контекста просто очевидно, что mIOServicePool и mAcceptor - это члены класса (так как в списке инициализаторов). Насчёт порядка - щас лень проверять, но вроде в каком порядке члены в списке указаны, такая последовательность и будет. Но, если ошибаюсь, тебе поможет простая перестановка местами:
|
|
kilkinenator | Дата 28.9.2010, 12:55 |
итак, есть кусочек кода, тупо срисованый с примера буста:
а проблема моя в том что mIOServicePool.GetIOService() происходит раньше чем mIOServicePool(threads), понятно, что такой расклад неприятен)) З.Ы. я понимаю, что есть простые решения моей проблемы, но очень хочется разобраться что да почему |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 29.3.2024, 9:57 |