Возврат указателя на функцию которая принадлежит классу

Тема в разделе "LANGS.C", создана пользователем KingT, 26 фев 2009.

  1. KingT

    KingT Member

    Публикаций:
    0
    Регистрация:
    12 янв 2006
    Сообщения:
    208
    Если есть глобальная функция void function() то функция,которая возвращает указатель на function должна быть обьявлена так:void(*GetFunctionAddress())();
    А как должна быть обьявлена функция GetFunctionAddress,которая возвращяет указатель на function,которая обьявленна в классе class?
     
  2. varnie

    varnie New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2005
    Сообщения:
    1.785
  3. KingT

    KingT Member

    Публикаций:
    0
    Регистрация:
    12 янв 2006
    Сообщения:
    208
    спасибо.буду фтыкать.
     
  4. s0larian

    s0larian New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2004
    Сообщения:
    489
    Адрес:
    Крыжёпполь
    KingT, там очень много нюансов т.к. это указатель на vtable принадлежащий конкретной instance. Ну а там может быть множественное наследование...
    http://www.codeproject.com/KB/cpp/FastDelegate.aspx

    Самое простое это объявить метод как static - и от станет обычной ф-цией.
     
  5. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    KingT

    Код (Text):
    1. class A
    2. {
    3. public:
    4.     void foo() { }
    5. };
    6.  
    7. void (A::*GetFunctionAddress())()
    8. {
    9.     return &A::foo;
    10. }