указатель на виртуальный метод класса

Тема в разделе "WASM.BEGINNERS", создана пользователем UTeX, 2 ноя 2007.

  1. UTeX

    UTeX New Member

    Публикаций:
    0
    Регистрация:
    19 окт 2007
    Сообщения:
    584
    subj
     
  2. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.347
    Такую WndProc нельзя использовать как функцию окна, потому что она получает первым параметром this.
     
  3. UTeX

    UTeX New Member

    Публикаций:
    0
    Регистрация:
    19 окт 2007
    Сообщения:
    584
  4. varnie

    varnie New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2005
    Сообщения:
    1.785
    вот пример про pointer-to-virtual-member, если что:

    Код (Text):
    1. class Different
    2. {
    3.     public: inline void InlineMember();
    4.     virtual void VirtualMember();
    5.     void OrdinaryMember();
    6.     static void StaticMember();
    7.     typedef void (Different::*FuncPtr)();
    8. };
    9.  
    10. void Test()
    11. {
    12.     Different::FuncPtr ptr = &Different::InlineMember;
    13.     ptr = &Different::VirtualMember;
    14.     ptr = &Different::OrdinaryMember;
    15. }
     
  5. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.347
    объявить ее как static.
    После создания окна, сохранить указатель this, например, в свойствах окна. В WndProc читать из свойств этот указатель и через него обращаться к функциям и переменным класса.
     
  6. UTeX

    UTeX New Member

    Публикаций:
    0
    Регистрация:
    19 окт 2007
    Сообщения:
    584