Форум программистов, компьютерный форум CyberForum.ru

Расскаэите о указателях на функции - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Сравнение строки http://www.cyberforum.ru/cpp-beginners/thread957055.html
Есть переменная char S; В нее что-то записали. Как проверить что S!="." и S!=".." bool result; в result записать true, если S!="." и S!=".." То есть если строка - символ точка . , или две точки .. то result=false.
C++ Неверное значение Имеется такой кусок кода: if (second_menu == 0) main_menu(); // главное меню else { weight_menu(); // меню ввода переменной weight switch (second_menu) { case 600: // http://www.cyberforum.ru/cpp-beginners/thread957033.html
C++ Проверка принадлежности точки определенной плоскости
Никак не дойдет алгоритм решения задачи -.- Помогите.
Уравнение C++
Помогите пожалуйста, как можно вычислить такое выражение:
C++ 1. Написать программу, которая предлагает пользователя ввести дату рождения http://www.cyberforum.ru/cpp-beginners/thread957004.html
1. Написать программу, которая предлагает пользователя ввести дату рождения отца, в формате YYYY MM DD, затем дату рождения сына, в том же формате, после чего вычисляет, на сколько лет, месяцев и дней отец старше сына и выводит результат в консоль. Программа не учитывает високосный год, и принимает количество дней в каждом месяце равное 30. зделал #include <iostream> using namespace std;...
C++ Округление числа до двух знаков после запятой 8. Написать программу, которая предлагает пользователю ввести дробное число, округляет его до двух знаков после запятой и выводит результат в консоль. подробнее

Показать сообщение отдельно
IGPIGP
Комп_Оратор)
 Аватар для IGPIGP
6171 / 2900 / 284
Регистрация: 04.12.2011
Сообщений: 7,712
Записей в блоге: 3
18.09.2013, 18:32     Расскаэите о указателях на функции
h_wolf, по смыслу указатель на функцию похож на любой указатель. Он позволяет адресовать сущность косвенно, то есть без имени. Тип указателя должен быть определён и указатель инициализирован. Для указателя на функцию тип определяется сигнатурой объявления.
Косвенное обращение, позволяет устанавливать точку ветвления, не заботясь о имени функции которая будет передана в эту точку через указатель. Важно только чтобы сигнатура подходила.
Перегрузка тут вообще не подойдёт для сравнения. Там имя совпадает, а типы параметров нет. При перегрузке сохраняется, как правило алгоритм. Просто он становится не чувствителен к типам параметров при вызове. Если и количество параметров при перегрузке варьируется, то это тем более не тот случай. Такая перегрузка как перегрузка конструкторов или операторов, не для ветвления вообще, а для обеспечения гибкости использования.
Ближе к теме, какой-нибудь блок - функция с заданной сигнатурой, в которой в ветвях оператора switch, например вызываются функции с этой же сигнатурой ( и этими же параметрами). Но в этом случае, все имена вызываемых в том или ином случае функций должны быть известны, на момент написания кода. То есть как библиотека для стороннего клиента это не подойдёт.
Техника обратного вызова, в принципе тоже использует указатели на функции. То есть если функция присоединяется к функции, без кода которой её выполнение невозможно, то в присоединяющую функцию передается указатель клиентской функции и её аргументы, а та запускает клиентский код.
 
Текущее время: 08:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru