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

Указатели на метод класса - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Использование OpenAL без установки http://www.cyberforum.ru/cpp-beginners/thread809299.html
Можно ли использовать библиотеку OpenAL без установки, а имея только необходимык .dll, .lib и .h файлы? Как я понимаю, то при установке происходит еще включение поддержки операций ядра OpenAL ("The OpenAL Installer for Windows will install the OpenAL 1.1 libraries, enabling support for core OpenAL operations as well as extensions such as EAX and EFX."). Как это сделать не прибегая к...
C++ Задана последовательность N Задана последовательность N вещественных чисел Xi. вычислить Si=√(X(i)-M)2/N-1 где M - среднее арифметическое данной последовательности. builder 6 http://www.cyberforum.ru/cpp-beginners/thread809250.html
указатель на перечисление kdevelop archlinux 64 bit gcc 4.7.2 C++
в строке, где ошибка, приведено сообщение компилятора компилятора#include <stdio.h> #include <stdlib.h> #include <string.h> struct vect{ float x,y,z; }; struct tchk{ enum g{i,l,m}; // i l m float x,y,z;
C++ Транслятор
Подскажите пожалуйста хорошую литературу на эту тему. Т.е. с чего нужно начать, какой порядок действий и т.п. А сама программа должна переводить какой-то небольшой код на одном языке - в другой. Я думаю взять С++, а со вторым ещё не определился, думаю ваш совет поможет. Спасибо!
C++ В заданном тексте определить целое число состоящие из наибольшего количества цифр http://www.cyberforum.ru/cpp-beginners/thread809191.html
В заданном тексте определить целое число состоящие из наибольшего количества цифр. Помогите плииииз
C++ Выбрать из заданного текста слова заданной длины и напечатать их по одному на каждой строке Выбрать из заданного текста слова заданной длины и напечатать их по одному на каждой строке. подробнее

Показать сообщение отдельно
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
15.03.2013, 15:20     Указатели на метод класса
Anklav, Просто так это не сделать. Классы разные, а указатель на функцию класса требует указания класса, для которого эта функция используется. Можно использовать С++11 std::bind или же boost::bind + std/boost ::function...

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <iostream>
#include <functional>
 
class A
{
public:
   void draw() { std::cout << "A::draw" << std::endl; }
};
 
class B
{
public:
   void draw() { std::cout << "B::draw" << std::endl; }
};
 
class Drawer
{
public:
   void set_function(const std::function<void()>& draw_f)
   {
      on_draw = draw_f;
   }
   void call()
   {
      if (on_draw)
      {
         on_draw();
      }
   }
private:
   std::function<void()> on_draw;
};
 
int main()
{
   Drawer d;
   A a;
   d.set_function(std::bind(&A::draw, std::ref(a)));
   d.call();
   B b;
   d.set_function(std::bind(&B::draw, std::ref(b)));
   d.call();
}
http://liveworkspace.org/code/x7WIu$0
 
Текущее время: 09:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru