Я просматриваю серию руководств, и там есть урок о функциях обратного вызова с использованием простого калькулятора. Я не умею программировать, но понимаю указатели и функции.
В учебнике продемонстрирован простой случай с двумя функциями, принимающими (int, int), и функцией, которая принимает указатели на функции в качестве аргументов, но я решил пойти по-своему и передать массив из переменных double и двух переменных size_t (чтобы отметить начало и конец массива) в качестве аргументов функциям сложения и вычитания.
Я пытался передать всем три аргумента функции и указатель на функцию «операция».
Я ожидал, что программа будет складывать или вычитать все числа в массиве в зависимости от выбора, который делает пользователь.
#include
#include
double add(double[], size_t, size_t);
double subtract(double[], size_t, size_t);
int main()
{
double numbers[] { 1.3, 2.0, 3.5};
size_t start = 0;
size_t end = std::size(numbers);
double(*operation)(double(*), double numbers[], size_t start, size_t end); // a function pointer
char choice = '0'; // a char variable for the choice of operation
double result; // result of the operation for the output
std::cin >> choice; // input
if(choice == '+')
{
result = operation(add, numbers, &start, &end); // passing the addition function as an argument to the operation function
}
if(choice == '-')
{
result = operation(subtract, numbers, &start, &end);
}
std::cout
Подробнее здесь: https://stackoverflow.com/questions/790 ... -functions
Использование функций обратного вызова ⇐ C++
Программы на C++. Форум разработчиков
1732921151
Anonymous
Я просматриваю серию руководств, и там есть урок о функциях обратного вызова с использованием простого калькулятора. Я не умею программировать, но понимаю указатели и функции.
В учебнике продемонстрирован простой случай с двумя функциями, принимающими (int, int), и функцией, которая принимает указатели на функции в качестве аргументов, но я решил пойти по-своему и передать массив из переменных double и двух переменных size_t (чтобы отметить начало и конец массива) в качестве аргументов функциям сложения и вычитания.
Я пытался передать всем три аргумента функции и указатель на функцию «операция».
Я ожидал, что программа будет складывать или вычитать все числа в массиве в зависимости от выбора, который делает пользователь.
#include
#include
double add(double[], size_t, size_t);
double subtract(double[], size_t, size_t);
int main()
{
double numbers[] { 1.3, 2.0, 3.5};
size_t start = 0;
size_t end = std::size(numbers);
double(*operation)(double(*), double numbers[], size_t start, size_t end); // a function pointer
char choice = '0'; // a char variable for the choice of operation
double result; // result of the operation for the output
std::cin >> choice; // input
if(choice == '+')
{
result = operation(add, numbers, &start, &end); // passing the addition function as an argument to the operation function
}
if(choice == '-')
{
result = operation(subtract, numbers, &start, &end);
}
std::cout
Подробнее здесь: [url]https://stackoverflow.com/questions/79062538/using-callback-functions[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия