|
1 / 1 / 0
Регистрация: 02.10.2021
Сообщений: 83
|
|||||||||||
Можно ли создать указатель на функции разного типа?31.07.2025, 14:46. Показов 5122. Ответов 9
Метки нет (Все метки)
Можно ли создать указатель на функции разного типа ?
Если бы все функции били простые или хотя бы одинакового параметра, то без проблем:
1. Простая функция без приема аргументов и без возврата void Fun (void) 2. Функция с приемом аргументов, но без возврата void Fun (...) 3. Без аргументов но с возвратом ... Fun (void) 4. и то и то. ... Fun (...) И как потом вызывать в нужный момент заданную функцию по указателю с нужными аргументами. Без проблем создать 3 указателя (структурой или или россыпью - без разницы) на: 1. саму функцию, 2. Принимаемый аргумент, 3 - переменную, принимающую возврат функции. Но вот только соединить всё вместе никак не получается, тем более если аргументы и возвращаемые значения разных типов. Нормально не работает. Прошу помочь.
0
|
|||||||||||
| 31.07.2025, 14:46 | |
|
Ответы с готовыми решениями:
9
Про указатель *, указатель на указатель **, и про new Как получить ссылку на указатель или указатель на указатель в массиве? |
|
Покинул чат.
1132 / 727 / 195
Регистрация: 30.03.2021
Сообщений: 2,379
|
|||||||
| 31.07.2025, 18:01 | |||||||
|
но можно это:
(зачем такое понадобилось -из сабжа не понятно)
0
|
|||||||
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
||
| 31.07.2025, 20:16 | ||
|
Ибо всё уже заранее привязано. В чём практический смысл?
0
|
||
|
1 / 1 / 0
Регистрация: 02.10.2021
Сообщений: 83
|
||||||||
| 31.07.2025, 21:27 [ТС] | ||||||||
|
Смысл в следующем. Допустим есть какой то драйвер на устройство, у которого есть набор различных функций. Функции могут быть абсолютно разные как я описал в 1 посту. Согласно алгоритму основной программы нужно выполнить какую то функцию. Но если её на данный момент выполнить нельзя, например если шина занята, то приходится выполнение этой функции отложить. И при этом пометить параметры выполнения функции (функцию, аргументы, возвращаемое значение). Т. е. создать указатели (ссылки) на то что нужно выполнить в дальнейшем (некий callback), что передать (если нужно) и во что возвращать результат (если нужно). И когда появится возможность выполнить эту функцию, система все эти параметры знала. Понимаю, что такого 100%-ного универсального способа нет, поэтому хочу найти альтернативные решения. 1-е альтернативное решение что пришло в голову (и оно сейчас работает) - создать доп. переменную, просто обозначающую условный номер действия и switch-ом уже расписывать инструкции. И когда пришла пора выполнить то, что мы хотели, - выполнять. Например:
Если ли какие способы лучше?
0
|
||||||||
|
1476 / 490 / 73
Регистрация: 22.09.2023
Сообщений: 1,505
|
||||||
| 01.08.2025, 00:33 | ||||||
|
Я бы делал как-то так:
0
|
||||||
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
|||||||
| 01.08.2025, 00:51 | |||||||
|
Но до конца не понятно всё равно. Шаблоны ещё нужно подтягивать, пока криво/косо.
0
|
|||||||
|
6793 / 2290 / 348
Регистрация: 10.12.2013
Сообщений: 7,901
|
|
| 01.08.2025, 10:27 | |
|
я и думать не стал, просто спросил: c++ function signatures dispatcher
ИИ ответил вполне толково.
0
|
|
| 01.08.2025, 13:18 | |
|
0
|
|
|
112 / 110 / 30
Регистрация: 08.05.2021
Сообщений: 485
|
||
| 03.08.2025, 09:17 | ||
|
0
|
||
| 03.08.2025, 19:21 | ||
|
0
|
||
| 03.08.2025, 19:21 | |
|
Помогаю со студенческими работами здесь
10
Нужен способ помещения разного рода типа данных в контейнеры типа массивов или структур
Указатели и указатели на указатели, а также типы данных Создать массив указателей на функции к функциям, которые имеют разное число и типы параметров? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Оттенки серого
Argus19 18.03.2026
Оттенки серого
Нашёл в интернете 3 прекрасных модуля:
Модуль класса открытия диалога открытия/ сохранения файла на Win32 API;
Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|