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

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

Восстановить пароль Регистрация
 
Degny
0 / 0 / 0
Регистрация: 13.05.2013
Сообщений: 4
16.05.2013, 21:49     указатель на функцию-член! #1
Как в аргумент функции передать указатель на метод класса?
Метод в классе у меня статический,все равно не получается(невозможно преобразовать параметр 1 из 'void' в 'void (__cdecl *)(void)')
Подскажите,пожалуйста,как это реализовать?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
_Xan_
 Аватар для _Xan_
20 / 20 / 6
Регистрация: 19.09.2010
Сообщений: 85
16.05.2013, 21:56     указатель на функцию-член! #2
Например вот так:
C++
1
2
3
float (SomeClass::*my_memfunc_ptr)(int, char*)
// Для константных функций-членов используется объявление
float (SomeClass::*my_const_memfunc_ptr)(int, char*) const;
Degny
0 / 0 / 0
Регистрация: 13.05.2013
Сообщений: 4
16.05.2013, 22:08  [ТС]     указатель на функцию-член! #3
Все равно не получается,в методах класса по-умолчанию передается указатель this,нужна статическая функция,в которой нету this;
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class B:
{
   public:
           static  void f();
}
void FuncD(void (*func)(void));
 
int main()
{
   void (*p)();
   p=&B::f;
   FuncD(p); 
  
  return 0;
}
ну так тоже не получается.
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
16.05.2013, 22:15     указатель на функцию-член! #4
Так получается:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
 
 
struct B {
 
   static void f() {
      std::cout << "f call" << std::endl;
   }
};
 
void FuncD(void (*func)()) {
   func();
}
 
 
int main() {
   FuncD(B::f); 
}
Degny
0 / 0 / 0
Регистрация: 13.05.2013
Сообщений: 4
16.05.2013, 22:23  [ТС]     указатель на функцию-член! #5
Спасибо))
Yandex
Объявления
16.05.2013, 22:23     указатель на функцию-член!
Ответ Создать тему
Опции темы

Текущее время: 12:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru