Ответы пользователя по тегу Программирование
  • Как выбрать какую функцию вызвать на этапе выполнения программы?

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

    Указатель на функцию можно использовать следующим образом:
    // Некоторая функция
    float func(float x1, float x2);
    
    // Указатель на функцию: возвращаемый_тип (* имя_указателя)(типы_аргументов)
    float (*func_pointer)(float, float);
    
    // Указателю можно присвоить только функции имеющие такую же 
    // сигнатуру (возвращаемый тип и типы аргументов)
    func_pointer = func;
    
    // Указатель на функцию может быть аргументом
    double findMinimum(x1, x2, float (*func_arg)(float, float)) {
        // Вызвать функцию через указатель можно также как и обычную функцию
        // потому, что имя функции тоже является указателем
        float x = func_arg(x1, x2);
    }
    
    // Чтоб передать указатель на функцию, нужно просто написать имя функции без скобок
    cout << findMinimum(1, 2, func) << '\n';
    Ответ написан
    Комментировать