![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 17.12.2009
Сообщений: 101
|
![]()
Захотелось экстрима. Суть такова:
Есть функция void func1(int &i), которая выполняет действие i -= 15 Есть указатель на функцию void (*func2)(int &i). f2 присваивается f1 и т.д. Работает. Но я решил использовать эту фишку в конструкторе одного из классов. То есть нужная функция должна передаваться конструктору в качестве параметра и там присваиваться указателю. Вроде того (просто функция, не конструктор): Код:
Есть ли элегантные и надёжные способы решения моей проблемы? Последний раз редактировалось Кипящий чайник; 10.10.2010 в 14:15. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,067
|
![]()
Вы в функцию передаёте f2 по значению, т.е. внутри функции новое значение присваивается, но func2 от этого не меняется. Смотрите как передавать указатель на функцию по ссылке/указателю.
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 31.08.2009
Сообщений: 161
|
![]()
во-первых посмотрите как вы объявили указатель на функцию
Код:
Код:
два - Код:
и еще насколько я понимаю, в функцию Attack вы передаетё копию func2, поэтому на строке (*func2)(value); ваша программа вылетает... |
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 14.01.2010
Сообщений: 31
|
![]() Код:
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 17.12.2009
Сообщений: 101
|
![]()
Почти это, спасибо. Просто я хочу так, чтобы не пришлось каждый при вызове указывать, какую именно функцию я хочу использовать. Чтобы один-единственный раз указателю присвоить нужную функцию, и этот указатель вызывать.
Дело в том, что каждый объект может использовать свою функцию. Может, подскажешь, как такое реализовать? |
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 14.01.2010
Сообщений: 31
|
![]() Код:
|
![]() |
![]() |
![]() |
#7 | |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,067
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
как объявить тип "указатель на функцию" | coper | Общие вопросы C/C++ | 3 | 12.09.2010 23:20 |
Как передать в функцию указатель на String | avd | Общие вопросы C/C++ | 6 | 06.06.2010 17:52 |
указатель на функцию. | kotjara2 | Общие вопросы C/C++ | 9 | 11.02.2010 18:45 |
Указатель на функцию | Роман Радер | Общие вопросы C/C++ | 2 | 09.11.2009 00:50 |
Как это сделать. Указатель на функцию. | Levsha100 | Свободное общение | 15 | 25.09.2009 05:57 |