|
18 / 19 / 4
Регистрация: 27.06.2016
Сообщений: 236
|
|
Как инициализировать статические переменные класса если они в привате?08.09.2021, 19:38. Показов 3723. Ответов 20
Метки нет (Все метки)
Собственно я решил потренировать свои навыки в ООП и для этого создал себе задачу сделать некий класс для управления насосами. Насосы , их может быть много, они могут качать могут не качать.
Я захотел сделать так чтобы все управление насосами шло полностью через свойства объекта(не силен в терминологии имею ввиду что все доступно через точку) Вот что получается: Насос: имеет свой номер, имеет статус(качает или не качает) Количество насосов это статическая переменная. Каждый объект с помощью конструктора увеличивает эту переменную хранящую количество насосов на единицу. Ее можно посмотреть но нельзя менять. То есть чтобы узнать количество насосов нужна статическая функция. Потому что среди модификаторов доступа в классе в С++ нет такого варианта чтобы снаружи можно было читать но нельзя было менять. Возникает проблема , а как собственно инициализировать нулем количество насосов? Оно же лежит в привате а туда никак не залезть никому снаружи. А изнутри нет "статического конструктора" одного для всех экземпляров. Далее возникает следующая проблема. Хотелось бы иметь статическую функцию которая может посылать сообщения всем обьектам : " всем стоять", " все качайте", "дайте список тех кто работает", Чтобы это сделать, нужно создавать статический-динамический список ссылок на все насосы например вектор содержащий указатели в который каждый объект при своем создании добавит ссылку на себя. ( а как он может потом себя удалить будет искать нужную ссылку в векторе по значению?) В общем вопрос как весь этот ООП зоопарк загнать в один класс используя С++? Ведь это как мне кажется классическая задача ооп в геймдеве, там тоже юниты плодятся тысячами и им даются команды типа " все упали от взрыва" или кто ближе 100 метров к взрыву у того отлетели уши.
0
|
|
| 08.09.2021, 19:38 | |
|
Ответы с готовыми решениями:
20
Как инициализировать статические члены класса Как правильно инициализировать статические поля класса Как правильно инициализировать статические члены класса? |
|
4903 / 2696 / 921
Регистрация: 29.11.2010
Сообщений: 5,783
|
|
| 29.09.2021, 12:35 | |
|
1
|
|
| 29.09.2021, 12:35 | |
|
Как при создании экземпляра класса инициализировать переменные вложенного класса Не могу инициализировать переменные класса Где инициализировать переменные класса? Как инициализировать переменные?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|