С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Ссылки на функции класса - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ C++ . Смерть на взлете. http://www.cyberforum.ru/cpp-beginners/thread13142.html
Коллеги, наверное, это очень важно для новичка - вместо того, чтобы теребить коллег с вопросами, что почитать, а уж начать, в конце концов, не важно с чего. А еще... не только почитать перед сном...
C++ Создать программу, которая выводит на экран простые числа в диапазоне от 2 до 1000 Создать программу, которая выводит на экран простые числа в диапазоне от 2 до 1000. (Число называется простым, если оно делится только на 1 и на само себя без остатка; причем числа 1 и 2 простыми... http://www.cyberforum.ru/cpp-beginners/thread13134.html
C++ Пожалуйста, помогите решить задачи С++.....
Определить и вывести на экран номер квадрата, в котором расположена точка А(x,y), где "х" и "у"- заданные целые числа.
C++ Определить, есть ли среди k-первых цифр дробной части вещественного числа цифра 0
Помогите пожалуйста решить задачки: 1. Определить, есть ли среди k-первых цифр дробной части вещественного числа цифра 0. 2. Даны два натуральных числа n и m. Получить из них несократимую дробь...
C++ Аналог функции, которая используется в Delphi strtoint/inttostr http://www.cyberforum.ru/cpp-beginners/thread13083.html
есть ли в С++ аналог функции , которая используеться в Delphi strtoint/inttostr.И как она используеться???
C++ последовательности Аршона здравствуйте! пытаюсь решить задачу про последовательности Аршона, но чето не выходит. Вы вообще слышали о таком задании? вобщем выделяется массив с регулированной длиной он заполняется... подробнее

Показать сообщение отдельно
TheRom
0 / 0 / 0
Регистрация: 22.10.2015

Ссылки на функции класса - C++

30.09.2008, 16:21. Просмотров 3163. Ответов 10
Метки (Все метки)

Задача:
В классе иметь массив ссылок на функции этого класса, чтобы вызывать их по номеру из массива.
Также в классе должна присутствовать функция обработки массива с целью получения ссылки на функции (по номеру в массиве) и их вызова.
Например: нужно вызвать функцию №2 класса MyClass........
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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"

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

Приняв это предположение как факт, я попытался передать конструктору адрес класса:
C++
1
2
3
4
5
6
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

Как правильно реализовать задачу?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.