Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ кривой Безье https://www.cyberforum.ru/ cpp/ thread192259.html
написать проектную процедуру создания кривой Безье, Желательно в С++ Добавлено через 17 часов 16 минут помогайте срочно надо(( я не знаю как сделать .... ил дайте ссылку на информацию как ее...
Выявление такого же ай-пи/мак адреса C++
Усем здрасти!) имеется необходимость написать приложение, которое, бы присваивало ip адрес сетевой карте и менять ее мак-адресс. Но самое интересное, что приложение должно извещать пользователя о...
C++ КНИГИ
Подскажите харошую(лучшую) книгу по С++ ИЛИ Visual C++ Добавлено через 2 часа 45 минут Посрветуйте
C++ Использование данных из разных потоков Привет всем! Возникла проблема с использованием данных из разных потоков в многопоточном приложении 1) Допустим созданы два потока, которые создают некоторые переменные. Как потом подключиться... https://www.cyberforum.ru/ cpp/ thread191392.html
C++ Как достать архив из exe https://www.cyberforum.ru/ cpp/ thread191290.html
Короче, нужно засунуть архив в exe и при запуске программа должна вытащить этот архив на рабочий стол. Подскажите как это можно реализовать программно??? :wall:
C++ Фрагментирование файла
Всем доброго времени суток. Пишу программу для работы с большими файлами. Файл состоит из блоков размером 512 байт. Каким образом при удалении блоков в середине файла сделать так, чтобы система не...
Cannot open include file: 'stream.h': No such file or directory C++
Для использования функций ввода/вывода cin/cout как я понимаю необходимо подключени библиотеки stream.h ? Но Visual Studio 2008 ругается - fatal error C1083: Cannot open include file: 'stream.h':...
C++ Вопрос по знаку ; Реакция программы с применением этого знака и без него #include "stdafx.h" #include <conio.h> int main() { int fahr; for(fahr=0; fahr <= 300; fahr= fahr + 20) printf("%4d %6.1f\n",fahr,(5.0/9.0)*(fahr-32.0)); _getch(); https://www.cyberforum.ru/ cpp/ thread190965.html
C++ Способы решения тривиальных/не тривиальных задач https://www.cyberforum.ru/ cpp/ thread190349.html
Други! В этой теме я предлагаю выкладывать свои способы решения тривиальных/не тривиальных задач и стремиться к элегантности их решения, то бишь к совершенству кода. Это будет способствовать...
C++ Взаимодействие cpp-dll и delphi-программы Есть программа, написанная на делфи, а также две длл: одна на с++, другая на делфи. Программа передает параметр - указатель packed record. PToRec = ^TRec; TRec = packed record mybool:... https://www.cyberforum.ru/ cpp/ thread190299.html
Эксперт С++
1661 / 1033 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
17.11.2010, 19:44 0

callback метода класса

17.11.2010, 19:44. Просмотров 4520. Ответов 2
Метки (Все метки)

Ответ

Как правильно использовать указатели на методы класса:
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. Ну и правильно извлекать адрес функции-члена.

Вернуться к обсуждению:
callback метода класса
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.11.2010, 19:44
Готовые ответы и решения:

Вызов метода класса из другого класса
Есть два класса &quot;нижнего уровня&quot; и один &quot;верхнего уровня&quot; Классы &quot;нижнего уровня&quot; имеют методы с...

Метод класса не работает как callback-функция
Всем привет! Помогите разобраться с синтаксисом. Есть gui-прога, в которой содержится функция...

Использование метода класса как функции в качестве типизированного аргумента в методе класса
Использование метода класса как функции в качестве типизированного аргумента в методе класса ...

Доступ к приватному полю класса X из метода класса Y
class X { private: int a; }; class Y {

2
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.