Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Указатель на функцию класса  (Прочитано 14631 раз)
0 Пользователей и 3 Гостей смотрят эту тему.
baldr
Команда клуба

cy
Offline Offline
Пол: Мужской
Дорогие россияне


WWW
« : 11-11-2004 15:43 » 

Подскажите, как создать указатель на функцию-член класса.
Причем, чтобы можно было вызывать функцию через указатель без имени объекта. То есть, инициализировали указатель функцией какого-либо объекта, а потом вызвали.
А можно сделать указатель на функцию-член ЛЮБОГО класса?
Например, на функцию int F1(int i);
Записан

Приличный компьютер всегда будет стоить дороже 1000 долларов, потому что 500 долларов - это не вполне прилично
Serega
Гость
« Ответ #1 : 11-11-2004 18:12 » 

Можно самому написать что-то типа этого
Код:
template <class T>
class mem_ptr
{
typedef int T::mem_fun(int);
mem_fun* fn;
public:
mem_ptr(mem_fun* f) : fn(f) {}
int operator()(T* obj, int i)
{
return obj->(*fn)(i);
}
};
А можно использовать например STL или Loki
« Последнее редактирование: 02-12-2007 17:27 от Алексей1153++ » Записан
vasyav
Гость
« Ответ #2 : 12-11-2004 07:56 » 

А ты нехочеш создать базовый класс, где обьявлен абстрактный оператор перегрузки вызова функции. И хранить указатели на обьекты где-либо, ты получиш то же что ты хотел.
Записан
baldr
Команда клуба

cy
Offline Offline
Пол: Мужской
Дорогие россияне


WWW
« Ответ #3 : 12-11-2004 08:55 » 

Точно :idea:  Как же я про шаблоны не подумал... :oops:
Спасибо.
Записан

Приличный компьютер всегда будет стоить дороже 1000 долларов, потому что 500 долларов - это не вполне прилично
Olegator
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #4 : 16-03-2005 23:57 » new

Цитата
А можно использовать например STL или Loki
Что такое Loki?
Записан
Pu
Большой босс

ru
Offline Offline
78


« Ответ #5 : 17-03-2005 06:27 » 

Olegator, библиотека шаблонов -
http://www.awprofessional.com/content/images/0201704315/sourcecode/loki.zip
Записан

Насколько я опытен? Достаточно, чтобы понимать, что дураков нельзя заставить думать по–другому, но недостаточно, чтобы отказаться от попыток это сделать.
(с) Артур Джонс
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines