Wskaźnik do metody do wskaźnika void* i spowrotem :P

0

Czy da się tak zrobić ?
np.:
void (__thiscall klasa::*wsk)(void)
wsk = & klasa::metoda;

void * obiekt;
obiekt = wsk; // kompilator nie zglasza bledu !

wsk = obiekt ; //blad !

0

Nie istnieje konwersja pomiędzy pointerem na metodę klasy a zwyczajnym, "obiekt = wsk;" nie ma prawa zadziałać. Wywal ten śmieć, który używasz jako kompilator.

0

spróbuje w takim razie inaczej, dzięki.

0

info: nie istnieje i tego nie probuj, chocby dlatego, ze ptr-to-member moze byc wiekszy (np. 8b) niz wskaznik (np. 4b).
jesli to Dev-C++ to pamietaj, on ma błędy. dużo.

0

Pomijając fakt, że konwersja nie istnieje, to kompilator wygenerował błąd dlatego, że:

Niejawna konwersja typ na void jest dozwolona.
Niejawna konwersja void na typ nie jest dozwolona. Trzeba rzutować jawnie:

typ* zmienna = (typ*) wzkaznik_void;
0

tylko bron boze tak rzutowac pointer-to-member na void*!
btw. http://www.codeproject.com/KB/cpp/FastDelegate.aspx # "Member Function Pointers - why are they so complex?" i w dol

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0