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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.09.2008, 15:59   #1
therom
Новичок
Джуниор
 
Регистрация: 30.09.2008
Сообщений: 1
По умолчанию Массив ссылок на функции класса

Задача:
В классе иметь массив ссылок на функции этого класса, чтобы вызывать их по номеру из массива.
Также в классе должна присутствовать функция обработки массива с целью получения ссылки на функции (по номеру в массиве) и их вызова.
Например: нужно вызвать функцию №2 класса MyClass........

typedef void (*PF)(void); //Это для ссылки на функцию
// Есть класс:
class MyClass
{
public:
void func1(void){}
void func2(void){}

PF massiv[2]; // создаем массив ссылок для функций

MyClass(void) // Конструктор
{
// в конструкторе присваиваем ссылкам адреса функций
massiv[0]=&func1;
massiv[1]=&func2;
}
};

Выскакивает ошибка в строках конструктора:
Error[Pe144]: a value of type "void (__nearfunc __version_3 MyClass::*)(void)" cannot be used to initialize an entity of type "PF"

Насколько я понял: на стадии конструирования класса еще не известны точные адреса функций

Приняв это предположение как факт, я попытался передать конструктору адрес класса:

MyClass(MyClass* adres) // Конструктор
{
// в конструкторе присваиваем ссылкам адреса функций
massiv[0]=&adres->func1;
massiv[1]=&adres->func2;
}

Теперь выскочила друкая ошибка:
Error[Pe300]: a pointer to a bound function may only be used to call the function

Как правильно реализовать задачу?

Последний раз редактировалось therom; 30.09.2008 в 16:15.
therom вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
массив указателей на методы класса? cout Общие вопросы C/C++ 2 08.05.2008 09:43
Чем различаются функции чтения класса istream C++ Go6a Помощь студентам 3 25.04.2008 11:04
С++.Массив и подпрограмма функции SkyDreamer Помощь студентам 0 23.11.2007 20:45
Автоматический вызов функции класса Flaton Общие вопросы C/C++ 4 19.10.2007 17:56
Статичиские функции класса Дмитрий_Ч Общие вопросы C/C++ 12 04.10.2007 16:19