вопрос про c++, порядок выполнения конструктора |
Здравствуйте, гость ( Вход | Регистрация )
вопрос про c++, порядок выполнения конструктора |
kilkinenator |
28.9.2010, 12:55
Сообщение
#1
|
Студент Группа: Участник Сообщений: 21 Регистрация: 11.2.2010 Пользователь №: 1464 Спасибо сказали: 3 раз(а) Репутация: 1 |
итак, есть кусочек кода, тупо срисованый с примера буста:
а проблема моя в том что mIOServicePool.GetIOService() происходит раньше чем mIOServicePool(threads), понятно, что такой расклад неприятен)) З.Ы. я понимаю, что есть простые решения моей проблемы, но очень хочется разобраться что да почему
Причина редактирования: убрал дубль
|
|
|
Алексей1153 |
28.9.2010, 12:59
Сообщение
#2
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
вообще -то, из контекста просто очевидно, что mIOServicePool и mAcceptor - это члены класса (так как в списке инициализаторов). Насчёт порядка - щас лень проверять, но вроде в каком порядке члены в списке указаны, такая последовательность и будет. Но, если ошибаюсь, тебе поможет простая перестановка местами:
|
|
|
kilkinenator |
28.9.2010, 13:08
Сообщение
#3
|
Студент Группа: Участник Сообщений: 21 Регистрация: 11.2.2010 Пользователь №: 1464 Спасибо сказали: 3 раз(а) Репутация: 1 |
Но, если ошибаюсь, тебе поможет простая перестановка местами:
нее, совсем не то)) Насчёт порядка - щас лень проверять, но вроде в каком порядке члены в списке указаны, такая последовательность и будет. вот это скорее всего так, так как изменение порядка и помогло мне. спасибо) |
|
|
kwisp |
28.9.2010, 15:00
Сообщение
#4
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
|
|
|
Sokoloff |
28.9.2010, 16:47
Сообщение
#5
|
Участник Группа: Участник Сообщений: 237 Регистрация: 1.4.2009 Из: Москва Пользователь №: 654 Спасибо сказали: 50 раз(а) Репутация: 11 |
а проблема моя в том что mIOServicePool.GetIOService() происходит раньше чем mIOServicePool(threads), понятно, что такой расклад неприятен)) по-моему, в каком порядке в обЪявлении класса члены идут в том порядке и инициализируются. Да, это так, хотя это не очевидное поведение. Вот что пишет Страуструп: Цитата(Бьерн Страуструп) Списки параметров для членов отделяются друг от друга запятыми (а не двоеточиями), а список инициализаторов для членов можно задавать в произвольном порядке: Конструкторы вызываются в том порядке, в котором они заданы в описании класса. |
|
|
igor_bogomolov |
28.9.2010, 18:36
Сообщение
#6
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
|
|
|
Текстовая версия | Сейчас: 30.11.2024, 19:45 |