Как их выводить?
Подсткажите плс
#include functional
#include iostream
bool all(int a,int b) {
if(a > b)
return true;
return false;
}
int main() {
int a = 8;
int b = 7;
std::function affa;
std::cout << affa(a,b); // я пробовал (int,int), но не компилится.
return 0;
}
C/C++
C++. Указатели на функции
#include <iostream>
#include <iomanip>
using namespace std;
using func = double (*)(double, double);
double sum(double a, double b) { return a + b; }
double sub(double a, double b) { return a - b; }
double mul(double a, double b) { return a * b; }
double div(double a, double b) { return a / b; }
double calc(double a, double b, func fn) { return fn(a, b); }
int main() {
const auto w = 3U;
auto a = 8.0;
auto b = 5.0;
cout
<< a << " + " << b << " = " << setw(w) << calc(a, b, sum) << '\n'
<< a << " - " << b << " = " << setw(w) << calc(a, b, sub) << '\n'
<< a << " * " << b << " = " << setw(w) << calc(a, b, mul) << '\n'
<< a << " / " << b << " = " << setw(w) << calc(a, b, div) << '\n';
system("pause > nul");
}
#include <iomanip>
using namespace std;
using func = double (*)(double, double);
double sum(double a, double b) { return a + b; }
double sub(double a, double b) { return a - b; }
double mul(double a, double b) { return a * b; }
double div(double a, double b) { return a / b; }
double calc(double a, double b, func fn) { return fn(a, b); }
int main() {
const auto w = 3U;
auto a = 8.0;
auto b = 5.0;
cout
<< a << " + " << b << " = " << setw(w) << calc(a, b, sum) << '\n'
<< a << " - " << b << " = " << setw(w) << calc(a, b, sub) << '\n'
<< a << " * " << b << " = " << setw(w) << calc(a, b, mul) << '\n'
<< a << " / " << b << " = " << setw(w) << calc(a, b, div) << '\n';
system("pause > nul");
}
L@zik™ Safarov
Ну зачем указатели? Передать ссылкой фунцию если надо даже в ТАКОМ случае как в этом коде.
Нафиг указатели если Вы используете functional (и правильно делаете).
С указателями Вы сразу себе создадите массу проблем. Как раз functional и сделана для того, чтобы уйти от указателей, при этом сделать код лакончиным и безопасным.
#include < iostream >
#include < functional >
bool all(int a,int b) {
if(a > b)
return true;
return false;
//return a>b ; <-- была-бы запись лаконичнее.
}
int main() {
int a = 8;
int b = 7;
std::function affa = all; //Просто надо было присвоить и никаких указателей
//Ну или через конструктор std::function affa(all);
std::cout << affa(a,b);
return 0;
}
https://onlinegdb.com/GALzBgKLB
Вообще для таких "однострочных" функций в очень многих случаях лучше использовать лямбда-функции.
https://onlinegdb.com/aKrN9_eEm
ЗЫЖ В современном C++ принято избегать указателей где только можно. Вместо них в частности используются ссылки н-р. И использование указателей в обычных ситуациях - означает что Вы что-то делаете не так.
С указателями Вы сразу себе создадите массу проблем. Как раз functional и сделана для того, чтобы уйти от указателей, при этом сделать код лакончиным и безопасным.
#include < iostream >
#include < functional >
bool all(int a,int b) {
if(a > b)
return true;
return false;
//return a>b ; <-- была-бы запись лаконичнее.
}
int main() {
int a = 8;
int b = 7;
std::function affa = all; //Просто надо было присвоить и никаких указателей
//Ну или через конструктор std::function affa(all);
std::cout << affa(a,b);
return 0;
}
https://onlinegdb.com/GALzBgKLB
Вообще для таких "однострочных" функций в очень многих случаях лучше использовать лямбда-функции.
https://onlinegdb.com/aKrN9_eEm
ЗЫЖ В современном C++ принято избегать указателей где только можно. Вместо них в частности используются ссылки н-р. И использование указателей в обычных ситуациях - означает что Вы что-то делаете не так.
Объяви сперва указатель на функцию:
bool (*affa)(int a, int b);
Потом запускай
либо так: affa(a,b);
либо так: (*affa)(a,b);
bool (*affa)(int a, int b);
Потом запускай
либо так: affa(a,b);
либо так: (*affa)(a,b);
Wine And We
спс
Тынчтык Дороонбеков
Да хоть так))
(********************affa)(a, b);
(********************affa)(a, b);
Похожие вопросы
- Передача в метод класса указателя на функцию C++
- Написать программу в языке Си, которая с помощью указателей на функцию выполняет задание
- C++, указатели, массивы
- C++ указатели и ссылки
- C++. Есть ли функция для завершения работы программы (аналог goto в самый конец программы)?
- Программирование C++, ряд Тэйлора, функции
- Здравствуйте, помогите пожалуйста написать программу на C++ с использованием функций
- Найти наиболее часто встречаемое число в массиве на C++, используя только функции
- Проблема с указателем в C++
- C/C++ Как устроена память, выделенная для структуры с указателем *next?