|
3 / 3 / 0
Регистрация: 04.06.2015
Сообщений: 40
|
|
Передача данных между классами20.11.2022, 19:39. Показов 506. Ответов 5
Метки нет (Все метки)
Всем здравствуйте. Может быть ответ на этот вопрос есть и на поверхности, но прошу помочь понять как передавать данные между взаимосвязанными классами? Работаю с QT. У меня есть, условно, Классы A, B, C и D. В каждом классе есть свои параметры:
В классе А - параметры aw, aw2, aw3 В классе B - параметры bw, bw2, bw3 В классе C - параметры cw, cw2, cw3 В классе D - параметры dw, dw2, dw3 Каждый из классов использует в своих каких-либо формулах переменные, которые рассчитываются в своих классах. Пример привела на картинке. На данный момент использую главный класс widget, в котором постоянно переписываю структуры параметров, которые потом передаю по указателю в нужный класс. Но это очень запутывает, особенно когда параметров в каждом классе не 2-3, а уже по 25-30
0
|
|
| 20.11.2022, 19:39 | |
|
Ответы с готовыми решениями:
5
Передача данных между классами Передача данных между классами Передача массивов между классами |
|
Гвоздь Задиров
1719 / 1118 / 337
Регистрация: 25.01.2019
Сообщений: 2,946
|
|||
| 20.11.2022, 19:44 | |||
|
0
|
|||
|
3 / 3 / 0
Регистрация: 04.06.2015
Сообщений: 40
|
|
| 20.11.2022, 19:45 [ТС] | |
|
0
|
|
|
3 / 3 / 0
Регистрация: 04.06.2015
Сообщений: 40
|
|
| 20.11.2022, 19:46 [ТС] | |
|
Извиняюсь, случайно нажала не на ту клавишу и сообщение отправилось. Уже отредактировала
0
|
|
|
Комп_Оратор)
|
|
| 20.11.2022, 19:56 | |
|
Olya9898, объекты воспринимают изменения лишь изменяя своё состояние. Редко бывает нужно иметь несколько десятков параметров для одного класса. Обычно класс - набор для какой-то задачи очень локальной и он обобщает класс таких задач. Логика и возможность несложного соблюдения инварианта требуют этого. А изменение состояния может делаться всеми кто имеет доступ к объекту. Это может быть затребовано непосредственно, через интерфейс класса предлагающий прямую запись (if any) или путём запуска методов класса принимающих набор аргументов, которые определят, что ему дальше делать - менять состояние, возбуждать другие объекты и т.п. События, паттерн наблюдатель, обратные вызовы, это только малая толика. Не простая к слову.
Olya9898, нет серебряной пули на все случаи жизни, поэтому ваша формулировка вопроса не предполагает ответа. В конкретных условиях, можно что-то посоветовать. Попробуйте уточнить свой вопрос.
1
|
|
|
4903 / 2696 / 921
Регистрация: 29.11.2010
Сообщений: 5,783
|
||||
| 21.11.2022, 06:06 | ||||
|
Полностью солидарен с уважаемым IGPIGP, добавлю несколько пунктов от себя.
Избрание подходящего способа получения, обработки и хранения данных -- чуть ли не основная задача современного погромиста. Такого количества полей в классах быть не должно. Это невозможно удержать в голове, и, следовательно, нереально поддерживать такой код. Декомпозируйте это вот. Добавлено через 2 минуты Возможно, ваша декомпозиция не разделяет логику и данные? Возможно, вам стоит посмотреть в сторону трехуровневой архитектуры. Если приведёте сниппеты кода, можно будет сказать что-то более конкретное.
1
|
||||
| 21.11.2022, 06:06 | |
|
Помогаю со студенческими работами здесь
6
Передача std::vector между классами Передача данных между потоками Передача данных между программами и сигналы Передача данных между двумя приложениями. Робота с классами (передача объекта класса в другой) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. .
Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
|
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла:
Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
|
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-text-sdl3-c. zip
finish-text-sdl3-cpp. zip
|
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
|
|
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo
Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло.
Но на выплатах по больничным это. . .
|
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
|
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y
Z4Tv2zpXVVo
https:/ / github. com/ shumilovas/ med2. git
|
Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа.
В качестве фильтра для отбора справочника служит группа номенклатуры.
Отбор по наименованию группы. . .
|