Ako pretypovať pointer na funkciu? C++

Sekcia: Programovanie 15.09.2010 | 03:59
Avatar Grawp   Používateľ
Mám istý problém. Potrebujem do istej položky vo FILE štruktúre nacpať pointer na funkciu. Problém je ale nasledujúci: argument of type ‘int (AvrUart::)(__file*)’ does not match ‘int (*)(__file*)’ tj. tá funkciu ktorej pointer potrebujem sa nachádza v štruktúre AvrUart, ale očividne FILE žere len pointery na globálne funkcie. Poraďte ako spraviť na tom pointere reinterpret cast.

(Prepisujem si jeden C program a všetko hádžem po novom do štruktúr a kompilujem ako C++, hoci s C knižnicami. A jednej hnusnej funkcii sa v štruktúre/triede nepáči, resp. FILEu sa nepáči typ pointera tej funkcie).
    • Re: Ako pretypovať pointer na funkciu? C++ 15.09.2010 | 05:39
      Avatar Grawp   Používateľ
      Vyriešené. Treba na to globálnu/statickú funkciu ktorá následne zavolá želanú member funkciu určitej inštancie daného objektu.

      A keďže v programe budem chcieť mať len jednu inštanciu daného objektu, možem samotnú funkciu, ktorej pointer potrebujem, deklarovať ako static. Asi je ale otázne, prečo tvorím objekt, z ktorého spravím len jednu inštanciu... nj.. nanič.. aby som sa naučil aký je rozdiel medzi member funkciou a globálnou/statickou funkciou.