» »

[C++] Razred, struktura, kazalec na funkcijo

[C++] Razred, struktura, kazalec na funkcijo

mujek ::

Pozdravljeni,

Imam en razred. V tem razredu imam definirano strukturo, in polje te strukture:
class Ui {
public:
	bool prvic(int st);
	bool drugic(int st);
	..bla bla..
private:
	struct Gumb {
		int st;
		char niz[10];
		WINDOW *win; //kazalec na okno
		bool (Ui::*klici)(int); //kazalec na funkcijo
	};
	Gumb gumbi[8];

..bla bla....

};

Zdaj bi rad klical funkcijo na katero kaže gumbi[neka].klici.
Kazalec nastavim z:
gumbi[i].klici = &Ui::prvic;

klicat pa sem probal z
out = (*this.gumbi.*klici)(i);

vendar mi ni uspelo.

Prosim če mi lahko kdo pomaga, in me pouči o tem. Sem googlal vendar nisem našel takega primera.

Hvala.

nimbix ::

Poskusi tako:
(gumb.*(gumb.klici))(i);


Tole pomeni: na instanci "gumb" kliči metodo, na katero kaže "gumb.klici".

mujek ::

Hvala na odgovoru.

Sem poskušal pa mi ni hotel prevesti.
Zdaj mi dela z
bool Ui::Click_handler() {
bla bla..
for (i = 0; i < 8 i++) {
out = (*this.*(gumbi[i].klici))(i);
bla bla...

(imam to kodo v eni metodi od objekta).
Torej če si prav predstavljam. na instanci *this (trenutna instanca objekta), pokliči metodo na katero kaze kazalec?

Tutankhamun ::

(this->*gumbi[i].klici)(i);
AMD Phenom QUAD 9950 Black Edition, 8GB

Zgodovina sprememb…

mujek ::

Sem skapiral :D
Hvala na pomoči.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

C# povezava forma in classa

Oddelek: Programiranje
172356 (1819) Miko55
»

[C] struct in int[] (strani: 1 2 )

Oddelek: Programiranje
657358 (6431) MrBrdo
»

[C++] Linker error

Oddelek: Programiranje
51291 (1291) Quikee
»

[JAVA] rekurzivni izpis seznama z kazalci

Oddelek: Programiranje
151783 (1541) l0g1t3ch
»

[c++] globalne spremenljivke (extern)

Oddelek: Programiranje
71591 (1464) Vesoljc

Več podobnih tem