definicja wskaznika do funkcji w obiekcie

0

czy ktos wie jak zadeklarowac wskaznic do funkcji wewnatrz obiektu
( cos takiego oczywiscie nie dziala: void (*funckja)(void parametr) )

z gory dzieki za odpowiedz

0

dołączam sie do pytania :-|

0

Wybacz, ale tak to napisałeś, że prawie nie kumam, o co pytasz.
Ale chyba chodzi Ci o coś takiego (jeśli się mylę, to podaj więcej szczegółów):
[code]typedef BOOL (WINAPI *PNPROC)(HANDLE, LPPROCESSENTRY32);
PNPROC PrcFirst;
PrcFirst = (PNPROC)GetProcAddress(kernel, "Process32First");[/code]

0

Wytłumaczcie mi jakie zadanie ma spełniać ten wskaźnik do funkcji w tym obiekcie bo ja zupełnie nie rozumiem pytania ?? Czy ma być argumentem metody ?? czy co ??
wiem że nie o to chodzi , ale ja tak np widze zastosowanie wskaźnika do funkcji w obiekcie :

[code]int funkcja(void) { cout

0

poprzednio nie wyrazilem sie jasno

/* bez obiektu wyglada to tak: */
int funkcja1 (int a, int b) {return a+ b} // dodaje
int funkcja2 (int a, int b) {return a- b}; // zwraca roznice

/* ciala powyzszych funkcji */

int (*funckja) (int, int);

/w programie przypisuje wskaznik funkcji:/

funckja= funckja2;

printf("roznica: %d", funckja( 2,1) );

/*czyli wywoluje funkcje na ktora wskazuje wskaznik funkcja i nie obchodzi mnie jak wyglada wewnatrz "funkcja2" */

chce zrobic cos podobnego w obiekcie
np.

class Klasa
{
public:
int (*funckja) (int, int); //czy jakakolwiek innego typu funkcja
// jak to zapisac?
}klasa;

cos takiego sie NIE kompiluje.
chce wywolac klasa.funckja (parametry) (czyli tym samym funkcje na ktora wskazuje wskaznik *funkcja), a nie obchodzi mnie sama wskazywana funkcja.
help! [glowa]

0

Hmmm...
Napisałem takie coś :
[code]int funkcja(int x)
{
cout

0

Nie wiem, czy to wam pomoże, ale w Delphi coś takiego robi się tak:

type Funkcja = function (a, b: Integer): Integer;

type Obiekt = class (TObject)
public
F: Funkcja;
end;

function Dodawanie(a, b: Integer): Integer;
begin
Result := a + b;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
o: Obiekt;
begin
o := Obiekt.Create;
o.F := Dodawanie;
ShowMessage(IntToStr(o.F(1,2)));
o.Free;
end;

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