Size: a a a

IT KPI C/C++ ХВ (не UB)

2020 May 21

AB

ART B in IT KPI C/C++ ХВ (не UB)
Till Schneider
тебе рассказать почему глобальные переменные это плохо?
не травмируй его психику)
источник

k

kvark in IT KPI C/C++ ХВ (не UB)
у меня есть не тривиальный кейс
источник

TS

Till Schneider in IT KPI C/C++ ХВ (не UB)
kvark
у меня есть не тривиальный кейс
давай
источник

AP

Alexander Pavlyuchuk in IT KPI C/C++ ХВ (не UB)
порядок инициализации не определен
источник

AP

Alexander Pavlyuchuk in IT KPI C/C++ ХВ (не UB)
бум
источник

AP

Alexander Pavlyuchuk in IT KPI C/C++ ХВ (не UB)
расходимся
источник

TS

Till Schneider in IT KPI C/C++ ХВ (не UB)
Valerii Nikitin
Почему нет?
допустим, я захочу играть в две игры одновременно, как мне создать два объекта класса Game ?
источник

k

kvark in IT KPI C/C++ ХВ (не UB)
https://github.com/LAGx/Roflergine
Roflergine/Roflergine/src/GameSystem/SystemManager/SystemManager.h
мне пришлось сделать GlobalSystemManager  чтобы игровые объекты могли подписатся на ивенты окна
источник

k

kvark in IT KPI C/C++ ХВ (не UB)
а вот как это красиво избежать я не придумал
источник

k

kvark in IT KPI C/C++ ХВ (не UB)
меня бесит этот класс
источник

k

kvark in IT KPI C/C++ ХВ (не UB)
конкретно, /Roflergine/src/GameSystem/GameObject/CameraObject.cpp line:42
источник

TS

Till Schneider in IT KPI C/C++ ХВ (не UB)
kvark
https://github.com/LAGx/Roflergine
Roflergine/Roflergine/src/GameSystem/SystemManager/SystemManager.h
мне пришлось сделать GlobalSystemManager  чтобы игровые объекты могли подписатся на ивенты окна
камераObject вполне может знать о существовании g_manager
источник

k

kvark in IT KPI C/C++ ХВ (не UB)
то есть меня за это бить каблуком не надо? и так сойдет?
источник

R

RISOVAXA in IT KPI C/C++ ХВ (не UB)
источник

TS

Till Schneider in IT KPI C/C++ ХВ (не UB)
если не хочется хранить объект где-то и передавать ссылку в этот объект, то можно пойти по пути синглтона
источник

k

kvark in IT KPI C/C++ ХВ (не UB)
о, надо поправить
источник

TS

Till Schneider in IT KPI C/C++ ХВ (не UB)
kvark
то есть меня за это бить каблуком не надо? и так сойдет?
синглтон, конечно, тоже является своего рода глобальной переменной, но не такая страшная))
источник

k

kvark in IT KPI C/C++ ХВ (не UB)
Till Schneider
если не хочется хранить объект где-то и передавать ссылку в этот объект, то можно пойти по пути синглтона
знач так дальше и пойду)
источник

RN

Ruslan Neshta in IT KPI C/C++ ХВ (не UB)
Valerii Nikitin
Почему нет?
ну во первых статическая память не бесконечная
во вторых ты вместо того чтоб создавать обьекты когда они нужны и очищать когда не нужны у тебя они всегда
ты сейчас по сути захардкодил по 1 обьекту и их создание
вообще можешь погуглить, я сходу не помню всех причин почему люди придумали ооп и не делают все глобальным
источник

TS

Till Schneider in IT KPI C/C++ ХВ (не UB)
Till Schneider
синглтон, конечно, тоже является своего рода глобальной переменной, но не такая страшная))
основная проблема - это многопоточный доступ и невозможность нормальной отладки
источник