Форум программистов, компьютерный форум CyberForum.ru

callback метода класса - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ кривой Безье http://www.cyberforum.ru/cpp/thread192259.html
написать проектную процедуру создания кривой Безье, Желательно в С++ Добавлено через 17 часов 16 минут помогайте срочно надо(( я не знаю как сделать .... ил дайте ссылку на информацию как ее сделать! Добавлено через 9 часов 13 минут выручайте....
C++ Алгоритмы_классы_объекты Составить описание класса для определения одномерных массивов строк фиксированной длины. Запрограммировать такие методы класса: 1)Контроль вывода за пределы массива 2)Слияние двух массивов за исключением повторяющихся элементов 3)Вывод всего массива http://www.cyberforum.ru/cpp/thread192238.html
C++ Поиск матрицы в матрице
Здравствуйте, подскажите, пожалуйста, как написать программу, чтобы считала, сколько раз одна матрица встречается в другой! Может кто-то писал что-то подобное...Не могу ничего придумать((
Контейнеры и итераторы C++
Тема: иерархия объектов и группа. Итераторы. Задание: Имена всех монархов на заданном континенте.
C++ Создание анкеты http://www.cyberforum.ru/cpp/thread191714.html
Помогите написать программу : Структура элемента массива анкета: фамилия, имя, отчество, год рождения, домашний адрес (город, улица, дом), оценки в аттестате зрелости (математика, физика, украинский язык, информатика), год окончания среднего учебного заведения. Определить абитуриентов-одесситов, имеющих максимальный средний балл в аттестате зрелости.
 

Показать сообщение отдельно
Nick Alte
Эксперт С++
1603 / 995 / 118
Регистрация: 27.09.2009
Сообщений: 1,918
Завершенные тесты: 1
17.11.2010, 19:44     callback метода класса
Как правильно использовать указатели на методы класса:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class A {
public:
    void foo() {}
    void bar() {}
};
 
int main()
{
    void (A::*f) () = &A::foo;  // Указатель на функцию из A. Обратим внимание на способ получения адреса метода.
    A *a = new A(); 
    (a->*f)();   // Вызов метода по указателю на существующий объект типа A
    f = &A::bar;
    (a->*f)();   // Вызов другого метода
    delete a;
}
Суть в том, что для вызова методов надо указывать и объект, на котором эти методы вызываются. В описанном случае можно пользоваться this. Ну и правильно извлекать адрес функции-члена.
 
Текущее время: 11:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru