|
Массив ссылок на функцию объекта и выполнения этих функций
|
|||
---|---|---|---|
#18+
Ардуино использует С++ Создал несколько разных классов и в некоторых классах есть void update() Хотел бы в void loop() выполнять один метод, который бы выполнял в каждом объекте класса функцию update() Сейчас это выглядит так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
Почитал о ссылках и указателях, решил, что смогу объявить масив *void arrobj[20]; например в масив думал, что буду помещать ссылку на функцию объекта или на объект(пробовал всякое) потом в одной функции хотел в цикле пробежаться по массиву и вызвать эти же функции классов, чтоб упростить код в loop Код: plaintext 1. 2. 3.
компилятор выдает массу ошибок и не в какую не получается так сделать. А вообще это реально? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2020, 00:09 |
|
Массив ссылок на функцию объекта и выполнения этих функций
|
|||
---|---|---|---|
#18+
уточню, что есть разные классы и у большинства есть update Например TIMER, BUTTON, SWITCH, SENSOR... ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2020, 00:12 |
|
Массив ссылок на функцию объекта и выполнения этих функций
|
|||
---|---|---|---|
#18+
Например так: Код: plaintext 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2020, 00:21 |
|
Массив ссылок на функцию объекта и выполнения этих функций
|
|||
---|---|---|---|
#18+
Anatoly MoskovskyНапример так: Это бы потребовало общего предка с виртуальным update(), нет?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2020, 01:20 |
|
Массив ссылок на функцию объекта и выполнения этих функций
|
|||
---|---|---|---|
#18+
А каким образом можна при инициализации класса добавить в массив ссылку на функцию update() класса ? Например Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
А уже в другой отдельной функции update() которая не принадлежит никакому классу пробежаться по циклу БупбличныйМассив и вызвать эти все зарегистрированные функции по ссылке, которые находятся в массиве? Я пробовал передавать ссылку на класс - ошибок нет. Как только пробовал ссылаться из ссылки на *(БупбличныйМассив[f])->update(); сразу копилятор ругается на ->update ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2020, 09:54 |
|
Массив ссылок на функцию объекта и выполнения этих функций
|
|||
---|---|---|---|
#18+
Андрей159, Контейнерный класс (или «класс-контейнер») в языке C++ — это класс, предназначенный для хранения и организации нескольких объектов определенного типа данных (пользовательских или фундаментальных). std::vector ? https://ravesli.com/urok-151-kontejnernye-klassy/ ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2020, 10:50 |
|
Массив ссылок на функцию объекта и выполнения этих функций
|
|||
---|---|---|---|
#18+
Андрей159 которая не принадлежит никакому классу "каждый сын имеет родителя" ООП ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2020, 10:52 |
|
Массив ссылок на функцию объекта и выполнения этих функций
|
|||
---|---|---|---|
#18+
Андрей159 А каким образом можна при инициализации класса добавить в массив ссылку на функцию update() класса ? А уже в другой отдельной функции update() которая не принадлежит никакому классу пробежаться по циклу БупбличныйМассив и вызвать эти все зарегистрированные функции по ссылке, которые находятся в массиве? Я пробовал передавать ссылку на класс - ошибок нет. Как только пробовал ссылаться из ссылки на *(БупбличныйМассив[f])->update(); сразу копилятор ругается на ->update Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2020, 11:40 |
|
|
start [/forum/topic.php?fid=57&fpage=5&tid=2017311]: |
0ms |
get settings: |
12ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
26ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
others: | 236ms |
total: | 365ms |
0 / 0 |