Forum » Programiranje » Array iz function pointer-jev
Array iz function pointer-jev
mercury ::
Živjo,
Rabil bi array tipa function pointer. Kdo ve, kako se ga definira in potem tudi uporablja ( če je sploh to mogoče? )?
L.P.
Rabil bi array tipa function pointer. Kdo ve, kako se ga definira in potem tudi uporablja ( če je sploh to mogoče? )?
L.P.
OwcA ::
V katerem jeziku?
Če je zadevščina tipsko varna je kaj takega vprašljivega smisla, razen če imaš zelo podobne funkcije (vrnejo in sprejemajo enake tipe).
Čemu sploh rabiš kaj takega, večinoma obstaja še kakšna pot.
Če je zadevščina tipsko varna je kaj takega vprašljivega smisla, razen če imaš zelo podobne funkcije (vrnejo in sprejemajo enake tipe).
Čemu sploh rabiš kaj takega, večinoma obstaja še kakšna pot.
Otroška radovednost - gonilo napredka.
mercury ::
Najprej, programiram v VC++.
Torej, imam spremenljivko tipa int. Odvisno od njene vrednosti bi rad klical različne funkcije. To naredil s switch stavkom, a mislim da bi bilo mogoče bolj elegantno zadevo rešiti s arrajem, v katerem bi bili naslovi funkcij.
L.P.
Torej, imam spremenljivko tipa int. Odvisno od njene vrednosti bi rad klical različne funkcije. To naredil s switch stavkom, a mislim da bi bilo mogoče bolj elegantno zadevo rešiti s arrajem, v katerem bi bili naslovi funkcij.
L.P.
OwcA ::
Ne bi bilo.
Če že, potem raje uporabi funkcionale (objekti, ki imajo navzven vidno edinole metodo operator()), ker drugače boš imel težave s tipi (alternativa bi bil še kakšen polimorfizem, ampak to je še več kompliciranja.).
Če že, potem raje uporabi funkcionale (objekti, ki imajo navzven vidno edinole metodo operator()), ker drugače boš imel težave s tipi (alternativa bi bil še kakšen polimorfizem, ampak to je še več kompliciranja.).
Otroška radovednost - gonilo napredka.
Vesoljc ::
funkcionale?
heh, pa ti si pravi toporisic
heh, pa ti si pravi toporisic
Abnormal behavior of abnormal brain makes me normal...
MaFijec ::
Čisto smiselen prenos iz matemtike.
funkcional -- preslikava, ki deluje na neki množici funkcij(iz X -> R ali C) in slika v realna(kompleksna) števila
funkcional -- preslikava, ki deluje na neki množici funkcij(iz X -> R ali C) in slika v realna(kompleksna) števila
Sergio ::
mercury, naredi lepo switch, pa basta. Najlepše narejeno, nabolj berljivo.
Ce hoces, da je pa se lepse, return vrednost poimenuj (0 assignaj vrednosti KLICI_PRVO_FUNKCIJO, 1 assignaj KLICI_DRUGO_FUNKCIJO, etc).
Zakaj komplicirat, ce ti ni treba. :)
Ce hoces, da je pa se lepse, return vrednost poimenuj (0 assignaj vrednosti KLICI_PRVO_FUNKCIJO, 1 assignaj KLICI_DRUGO_FUNKCIJO, etc).
Zakaj komplicirat, ce ti ni treba. :)
Tako grem jaz, tako gre vsak, kdor čuti cilj v daljavi:
če usoda ustavi mu korak,
on se ji zoperstavi.
če usoda ustavi mu korak,
on se ji zoperstavi.
trs ::
Nehajte tolko filozofirat :)
Dajte mu odgovor, tako se bo vsaj naucil kako se dela s pointerji na funkcije in bo lahko sam presodil ce se mu to izplaca ali ne. Pa se drugic ne bo vec rabil tega sprasevat ...
int vrni_ena(void) {
return 1;
}
int vrni_dva(void) {
return 2;
}
int vrni_tri(void) {
return 3;
}
int (*funcarray[3])(void) = { vrni_ena, vrni_dva, vrni_tri };
int main(void) {
int ii;
for (ii = 0; ii < sizeof(funcarray) / sizeof(funcarray[0]); ii++)
printf("%d\n", funcarray[ii]());
}
----
Pa namestio int (*funcarray[3])(void) je lepse ce se napise
typedef int (*foofunc)(void);
foofunc funcarray[3] = { ... };
Dajte mu odgovor, tako se bo vsaj naucil kako se dela s pointerji na funkcije in bo lahko sam presodil ce se mu to izplaca ali ne. Pa se drugic ne bo vec rabil tega sprasevat ...
int vrni_ena(void) {
return 1;
}
int vrni_dva(void) {
return 2;
}
int vrni_tri(void) {
return 3;
}
int (*funcarray[3])(void) = { vrni_ena, vrni_dva, vrni_tri };
int main(void) {
int ii;
for (ii = 0; ii < sizeof(funcarray) / sizeof(funcarray[0]); ii++)
printf("%d\n", funcarray[ii]());
}
----
Pa namestio int (*funcarray[3])(void) je lepse ce se napise
typedef int (*foofunc)(void);
foofunc funcarray[3] = { ... };
trs ::
OWca ... pol je cas da redisagniras program :)
Ne vidim smisla, da imas en array funkcij, ki ti vracajo razlicne tipe ... in sprejemajo razlicne argumente? Na kaj konkretno namigujes?
Ne vidim smisla, da imas en array funkcij, ki ti vracajo razlicne tipe ... in sprejemajo razlicne argumente? Na kaj konkretno namigujes?
OwcA ::
Na to, da je polje kazalcev na funkcije zelo redko dobra rešitev, prej pokazatelj napake v zasnovi.
Otroška radovednost - gonilo napredka.
trs ::
Za arraye na pointerje na funkcije v taki obliki, kot si je zamislil mercury, niso idealna resitev.
To se ne pomeni da so pointerji na funkcije slaba stvar ;) Ocitno jih mercury ne obvlada, zato je bil cajt da mu nekdo odpre oci :)
To se ne pomeni da so pointerji na funkcije slaba stvar ;) Ocitno jih mercury ne obvlada, zato je bil cajt da mu nekdo odpre oci :)
OwcA ::
To se ne pomeni da so pointerji na funkcije slaba stvar
Nikakor, le polje njih ni ravno užitna stvar.
Otroška radovednost - gonilo napredka.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [C] Funkcija vrnitev kazalcaOddelek: Programiranje | 1188 (904) | MrStein |
» | c++ lib,dll,h za uporabo v C#Oddelek: Programiranje | 1953 (1752) | noraguta |
» | [C] Sortiranje preštetih črkOddelek: Programiranje | 1426 (1262) | BigBoobs |
» | [c++] standardni c++ in dogodki(events)Oddelek: Programiranje | 1749 (1574) | yeti |
» | Uporaba .dllOddelek: Programiranje | 1373 (1333) | Vesoljc |