Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.94/16: Рейтинг темы: голосов - 16, средняя оценка - 4.94
18 / 19 / 4
Регистрация: 27.06.2016
Сообщений: 236

Как инициализировать статические переменные класса если они в привате?

08.09.2021, 19:38. Показов 3681. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Собственно я решил потренировать свои навыки в ООП и для этого создал себе задачу сделать некий класс для управления насосами. Насосы , их может быть много, они могут качать могут не качать.

Я захотел сделать так чтобы все управление насосами шло полностью через свойства объекта(не силен в терминологии имею ввиду что все доступно через точку)

Вот что получается:
Насос: имеет свой номер, имеет статус(качает или не качает)


Количество насосов это статическая переменная. Каждый объект с помощью конструктора увеличивает эту переменную хранящую количество насосов на единицу.
Ее можно посмотреть но нельзя менять.
То есть чтобы узнать количество насосов нужна статическая функция. Потому что среди модификаторов доступа в классе в С++ нет такого варианта чтобы снаружи можно было читать но нельзя было менять.

Возникает проблема , а как собственно инициализировать нулем количество насосов? Оно же лежит в привате а туда никак не залезть никому снаружи. А изнутри нет "статического конструктора" одного для всех экземпляров.

Далее возникает следующая проблема. Хотелось бы иметь статическую функцию которая может посылать сообщения всем обьектам : " всем стоять", " все качайте", "дайте список тех кто работает",
Чтобы это сделать, нужно создавать статический-динамический список ссылок на все насосы например вектор содержащий указатели в который каждый объект при своем создании добавит ссылку на себя. ( а как он может потом себя удалить будет искать нужную ссылку в векторе по значению?)

В общем вопрос как весь этот ООП зоопарк загнать в один класс используя С++? Ведь это как мне кажется классическая задача ооп в геймдеве, там тоже юниты плодятся тысячами и им даются команды типа " все упали от взрыва" или кто ближе 100 метров к взрыву у того отлетели уши.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.09.2021, 19:38
Ответы с готовыми решениями:

Как инициализировать статические члены класса
Помогите пожалуйста....я не знаю как вывести в статическое поле значения((( #include <conio.h> #include <stdlib.h> ...

Как правильно инициализировать статические поля класса
Здравствуйте, уважаемые форумчане! Столкнулся с проблемой, решение нашел, но идею еще нужно понять. //MyClass.h class MyClass ...

Как правильно инициализировать статические члены класса?
Я новичок и заранее прошу прощение за тупые вопросы. Имеются два класса: Solution и Pool. Pool состоит из нескольких обьектов класса...

20
 Аватар для lemegeton
4903 / 2696 / 921
Регистрация: 29.11.2010
Сообщений: 5,783
29.09.2021, 12:35
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от SmallEvil Посмотреть сообщение
хранить указатели как идентификатор обїекта не самій лучший вариант
Конечно, это всё полумеры, простейший пример.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.09.2021, 12:35

Как при создании экземпляра класса инициализировать переменные вложенного класса
Здравствуйте. Подскажите пожалуйста как при создании екземпляра класа инициализировать переменные вложеного класа. Добавлено через 22...

Не могу инициализировать переменные класса
Доброго времени суток, проблема такая: есть функция getscore (строки 92-106), всё вроде работает, ошибок нет, но в массиве score всегда...

Где инициализировать переменные класса?
Почему я не могу инициализировать переменную непосредственно в описании класса? class Primer { publuc: Metod1() {...}; ...

Как инициализировать переменные?
Здравствуйте. Где можно полно осведомиться о том как инициализируются переменные в C++ для каждого типа?

Как инициализировать компоненты в переменные в C#
Добрый день! Как разобраться. Нужно написать довольно простую программу. Дана форма, на ней 2 combobox, 2 текстовых поля, 3 radiobutton и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
21
Ответ Создать тему
Новые блоги и статьи
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу))) Критические ошибки, мешающие компиляции и. . .
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата) Этот документ предназначен для того, чтобы новый чат Claude мог продолжить работу без необходимости заново разбираться в. . .
сукцессия 15 неявная схема
anaschu 29.06.2026
Алиса Калибровка параметров симбиотической модели: технический обзор Содержание: Введение Постановка проблемы Технические аспекты реализации Процесс внедрения изменений
сукцессия 14. Обновленная схема модели
anaschu 28.06.2026
ГЛОБАЛЬНАЯ ОПИСАТЕЛЬНАЯ СПЕЦИФИКАЦИЯ ЭКОСИСТЕМНОЙ МОДЕЛИ «SOIL CHEMISTRY & MYCORRHIZA 2. 0» https:/ / ibb. co/ NnkGpfMd Представленная интегрированная схема описывает непрерывную нелинейную. . .
сукцессия 13. Питон модель трехзонного мицелия, пока что в основном арбускулярного
anaschu 28.06.2026
## Разработка агентной модели микоризной сукцессии: от выявления артефактов к созданию комплексной системы ### Аннотация Представлено исследование по разработке агентной модели микоризной. . .
сукцессия 12. краткий список проверок модели перед запуском.
anaschu 27.06.2026
Скрытые отказы в моделях систем динамики (SD-models) экологических систем: два случая из практики Контекст Разбирался прототип модели систем динамики (SD-модели) микоризной сукцессии: пять. . .
Сукцессия 11. Проверка орудий перед войной: разработка через тестирование
anaschu 27.06.2026
Как не дать модели соврать самой себе: проверки для симуляции микоризной сукцессии Введение Когда вы строите математическую модель живой системы — грибов, растений, почвы — главная опасность. . .
10 сукцессия. Питон код войны грибов и растений
anaschu 27.06.2026
import numpy as np class PlantAgent: def __init__(self, name, strategy, initial_biomass): self. name = name self. strategy = strategy # "greedy" (широколиственные) или. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru