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

Указатель на функцию-член - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как в связном списке обратиться к элементу по адресу http://www.cyberforum.ru/cpp-beginners/thread696059.html
как в связном списке обратиттся к элементу по нужному адресу? Добавлено через 46 минут как в связном списке обратится к нужному элементу?
C++ Действие для кнопки при инициализации класса Предположим есть класс Button #include "string.h" class Button { public: Button(); int x,y; String text; virtual void Action(); http://www.cyberforum.ru/cpp-beginners/thread696046.html
Односвязный список, поменять значения местами C++
пробую написать сортировку выборкой int selectionSort() { ListNode< NODETYPE > *currentPtr = firstPtr; sort(currentPtr); } int sort(ListNode < NODETYPE > *current) {
C++ Удалить из файла все числа меньше заданного
Удалить из файла все ЧИСЛА меньше заданного. Соответственно у нас два файла 1 и 2 txt, и во втором редактировынный первый)))
C++ Как отсортировать двумерный массив по возрастанию методом пузырька? http://www.cyberforum.ru/cpp-beginners/thread696030.html
Напишите пожалуйста код. Нигде не могу найти(
C++ Определить сумму отрицательных элементов массива #include <math.h> #include <stdio.h> #include <stdlib.h> #include <conio.h> #define N 10 #define M 10 #define A 10 #define B 10 #define C 10 подробнее

Показать сообщение отдельно
ps10n1ck
 Аватар для ps10n1ck
53 / 47 / 2
Регистрация: 10.11.2010
Сообщений: 132
13.11.2012, 03:20     Указатель на функцию-член
Доброго времени суток, возникла следующая ситуация:
Приведу пример:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class A {
public:
    void a() { cout << "hello!"; };
};
 
class B {
public:
    void b(void (*pfunc)()) { pfunc(); };
};
 
 
int main(){
    A* a = new A;
    B* b = new B;
 
    b->b(a->a()); // ????????????
    
return 0;
}
при такой передаче параметра в функцию естественно произойдет ошибка:
C++
1
error C2664: 'B::b' : cannot convert parameter 1 from 'void' to 'void (__cdecl *)(void)'
Кто подскажет, как правильно и лучше передать указатель на функцию-член класса?
Функции не статические.

Добавлено через 8 минут
на данный момент у меня только такие решения есть:
C++
1
2
3
4
5
6
7
8
9
10
11
12
A* a = new A;
B* b = new B;
 
void func(){
    a->a();
}
 
int main(){
    b->b(func); // ????????????
    
return 0;
}
или объявление функции a() как статическая
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 20:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru