![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| MAKCim |
|
||||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
да и получим все тот же мой пример, только в неявном виде + у меня state не константен Добавлено через 5 минут и 30 секунд
в оригинальном примере state не константен и вычисляется динамически т. е не обязательна последовательность state1() -> state2() -> state3() + state3() не обязательно пуст в этом случае можем получить длинную цепочку вызовов, что приведет в конечном итоге к переполнению если брать ваш код в том виде, в котором он есть, переполнения, конечно, не будет но он и не эквивалентен моему -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
||||
|
|||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
так я просто для примера сделал его статическим )) под приравниваем подразумевалась определеная операция над состоянием результатом которой неизвестное на этап компиляции значение у по идеи одно значение состояние должно быть выходом из автомата
согласен, сейчаспопробую переписать Это сообщение отредактировал(а) mes - 25.4.2008, 21:54 |
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
не обязательно инвариант выхода может формироваться не только по state -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
ну а теперь?
Добавлено через 2 минуты и 7 секунд P.S. inline функций в данном примере компилятор должен произвести сам .. |
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
mes,
а если в каждой из stateX требуется контекст Run()? тащить его в каждую stateX? расточительно... Это сообщение отредактировал(а) MAKCim - 25.4.2008, 22:29 -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
1 контекст является глобальным окружением - (как и в примере с goto) 2. все это дольно быть классом и функции обслуживающие состояния являются его членами 3. этот автомат обслуживает сторонюю структуру данных - тогда придется ее передавать как параметр 4 или функции обслуживаюшие состояния являются внешними по отношению классу - тогда придется передавать себя как параметр . P.S. если функции заинлайнятся, то даже этих расходов на передачу параметров не будет. Это сообщение отредактировал(а) mes - 26.4.2008, 09:54 |
|||
|
||||
| Rickert |
|
|||
|
Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 0 Всего: 52 |
Почему мои последние топики такие провакационные? Вроде спросил простую вещь
-------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
| Lazin |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 41 Всего: 154 |
Талант наверное. Резюмируя:
Без разницы, главное, что-бы в данном конкретном случае это хорошо читалось другими программистами. а столько многабукаф из-за того, что здоровенный switch- это как правило признак ошибки в проектировании... вот.. Это сообщение отредактировал(а) Lazin - 26.4.2008, 18:10 |
||||
|
|||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
||||
|
||||
| Mayk |
|
|||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: 45 Всего: 134 |
В этом всё и дело, Rickert, чем проще вопрос — тем больше на него ответов. Это давно так -------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
|||
|
||||
| Rickert |
|
|||
|
Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 0 Всего: 52 |
solved
-------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
| CppDevelopeR |
|
|||
![]() Experienced Expert ![]() ![]() Профиль Группа: Участник Сообщений: 390 Регистрация: 7.1.2008 Где: Moscow-City Репутация: нет Всего: 9 |
Конечно switch. Но согласяться все, что без if/else порой ну никак не обойдись. Ну, или по крайней мере в некоторых случаях(местах) if/else использовать удобнее.
|
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
вообще-то, switch/case довольно редко используемая конструкция (речь не о любителях Win32API) по сравнению в if/else. |
|||
|
||||
| SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 4 Всего: 91 |
А конструкция:
еще реже... |
|||
|
||||
| bsa |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
у меня так чаще, чем switch/case |
||||
|
|||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |