Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.09.2015, 12:46   #1
taras-proger
Подтвердите свой е-майл
 
Регистрация: 12.11.2014
Сообщений: 470
По умолчанию Указатель на перегруженную функцию

Код:
typedef int (*tf)(int);
typedef int (*td)(double);
int f(int x)
{
 ...
}
double d(double x)
{
 ...
}
tf p1;
td p2;
Как присвоить p1 указатель на версию f с целым параметром?
taras-proger вне форума Ответить с цитированием
Старый 18.09.2015, 13:05   #2
Shad0wF1rst
Форумчанин
 
Регистрация: 11.01.2013
Сообщений: 149
По умолчанию

Ты уже описал тип указателя на функцию:
Код:
typedef int (*tf)(int);
потом бурешь и пишеш:
Код:
tf p1 = &f(параметр функции);
как то так.
Может это и чушь, но это моя чушь и я ее никому не отдам.
Shad0wF1rst вне форума Ответить с цитированием
Старый 18.09.2015, 13:17   #3
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Код:
typedef int (*tf)(int);
typedef int (*td)(double);
int f(int x)
{
 ...
}
double d(double x)
{
 ...
}
tf p1 = f;
td p2 = d;
Правда в p2 будет ошибка - тип результата не совпадает.
waleri вне форума Ответить с цитированием
Старый 21.09.2015, 10:03   #4
taras-proger
Подтвердите свой е-майл
 
Регистрация: 12.11.2014
Сообщений: 470
По умолчанию

То есть
Код:
typedef int (*tf)(int);
typedef double (*td)(double);
int f(int x)
{
 ...
}
double f(double x)
{
 ...
}
tf p1;
td p2;
Цитата:
Сообщение от Shad0wF1rst Посмотреть сообщение
Ты уже описал тип указателя на функцию:
Код:
typedef int (*tf)(int);
потом бурешь и пишеш:
Код:
tf p1 = &f(параметр функции);
как то так.
Код:
||=== Build: Debug in Test7 (compiler: MinGW64) ===|
D:\Projects\cpp\Test7\Test7\Test.cpp||In function 'int main()':|
D:\Projects\cpp\Test7\Test7\Test.cpp|23|error: lvalue required as unary '&' operand|
D:\Projects\cpp\Test7\Test7\Test.cpp|25|error: expected primary-expression before 'double'|
||=== Build failed: 2 error(s), 0 warning(s) (0 minute(s), 2 second(s)) ===|
Цитата:
Сообщение от waleri Посмотреть сообщение
Код:
typedef int (*tf)(int);
typedef int (*td)(double);
int f(int x)
{
 ...
}
double d(double x)
{
 ...
}
tf p1 = f;
td p2 = d;
Правда в p2 будет ошибка - тип результата не совпадает.
Проблема не в типе результата, а в совпадении имён в правой части. В стартовом посте очепятка.

Последний раз редактировалось taras-proger; 21.09.2015 в 10:15.
taras-proger вне форума Ответить с цитированием
Старый 21.09.2015, 21:36   #5
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Код:
typedef int (*tf)(int);
typedef double (*td)(double);
int f(int x){}
double f(double x){}
tf p1 = f;
td p2 = f;
_Bers вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передать указатель на указатель в функцию erro Общие вопросы C/C++ 3 29.10.2012 17:59
Как передать указатель на функцию в функцию WIN32APIist Общие вопросы C/C++ 1 27.01.2011 10:35
Указатель на функцию Кипящий чайник Общие вопросы C/C++ 6 10.10.2010 19:30
указатель на функцию. kotjara2 Общие вопросы C/C++ 9 11.02.2010 18:45
Указатель на функцию Роман Радер Общие вопросы C/C++ 2 09.11.2009 00:50