170 похожих чатов

Написал класс, но внутри класса мне нужно вызывать разные функции

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

21 ответов

26 просмотров

Причем здесь полиморфизм и массив функций? Нужен код.

Daniil- Автор вопроса
Maus Grau
Причем здесь полиморфизм и массив функций? Нужен к...

не могу код кинуть(. но суть в том, что есть метод, который запускает в отдельном потоке функцию с бесконечным циклом. И этих функций с бесконечным циклом у меня будет штук 10.

Daniil
не могу код кинуть(. но суть в том, что есть метод...

Очень зависит от задачи, но пока нет аргументов за то чтобы тащить функции в класс, да и делать их друзьями)

Можно сделать класс запускатора, отвязанного от логики циклов и передать ему при инициализации масив указателей на функции. Так мы развяжем ответственности.

Про результат подробнее...

Daniil- Автор вопроса
Ilya Zviagin
Про результат подробнее...

пишу код для управления rgb матрицы. Так как матрицы штампуют китайцы, ни какого единого стандарта в алгоритме управления этими матрицами нет. драйвера будут реализованны в виде этих самых функций с бесконечным циклом.(желательно, чтоб их было еще и удобно туда добавлять) В либе я создаю буффер и заполняю его, для вывода изображения. изображение выводится на матрицу уже в отдельном потоке, той самой функцией - драйвером. вот, вроде все объяснил

Попробуй пока просто if...

Daniil
пишу код для управления rgb матрицы. Так как матри...

Нет проблемы, которую нельзя было бы не решить доп. абстракцией (кроме проблемы излишних абстракций)

Denis P
и проблемы как обозвать переменную

Абстракция генератора случайных названий поможет вам решить эту проблему.

netricks
Абстракция генератора случайных названий поможет в...

у меня где-т валялся генератор произносимых слов

🐈
что это?

https://ru.m.wikipedia.org/wiki/Ложбан

Daniil
пишу код для управления rgb матрицы. Так как матри...

Я не знаю, почему там будет бесконечный цикл, Но полагаю, что сюда ляжет на какойто готовый архитектурный паттерн. Например, адаптер (под каждую матрицу своя реализация с набором функций), но унифицированный абстрактный интерфейс для всех драйверов Я делал прошивку-читалку протоколов для мозгов хонды цивика. Там 4 разных протокола общения с мозгами: заводской тормознутый OEM, и тюнинговые QD2, QD3, ISR. И читалка должна переключаться между ними в рантайме. Я разделял все на общие методы чтения/записи в последовательный порт. Протоколы с их конкретными реализациями обработки данных запихал в паттерн Состояние. А самый конечный класс, в котором была связь юзер-мозги в паттерн Компоновщик (не думаю что решение удачное) Как пример

Hvost 🦊♠️
Так это ты Ложбан написал?

хм. а есть ли у нас constexpr rand?

🐈
хм. а есть ли у нас constexpr rand?

нет, но сделать наверное не большая проблема

Похожие вопросы

Обсуждают сегодня

Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Чтобы перехватить все нажимания буков на форме, надо хук ставить? Пробовал на форме ОнКейДаун, оно ловит клаву если фокус не на компоненте с вводом текста
Serjone
15
лучше скажите, причём тут паскаль?
Alexey Kulakov
36
Всем привет! вывожу на общей стр дочерние ресурсыв каждом ресурсе галерея, и первая фотка должна выводиться на общей [!DocLister? &prepare=photo !]
Alekso
12
А можно вопрос? Мне сегодня сказали что у меня функция (которая просто заполняет массив значениями) не правильная void Full(double * arr, int n) { for (int i = 0; i < n; i...
† C E †
7
День добрый, подскажите пожалуйста, есть ли какой-то способ сказать ребару не компилировать определённое приложение? Всю доку их перечиатл ничего подобного не нашёл
Кирилл
14
Добрый вечер. Хочу чтобы у меня в классе поле было функцией, которая возвращает строку. Делаю так: interface ... TGetOutPath = function : String of object; ... protec...
Kirill Filippenok
12
Народ! Впервые клиенту пришло письмо от РКН, у вас, дескать, есть яндекс метрика, а нигде не написано, что вы ее юзаете. Никто не сталкивался?
Sasha Beep
10
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Здравствуйте, хочу сделать HelloWorld в консоли Дельфи, но функция API ничего не выводит, что я делаю не так? program Hello; {$APPTYPE CONSOLE} uses System.SysUtils, WinAPI.Wi...
Sergey Vinogradov
20
Карта сайта