[ itf @ 23.01.2006. 17:01 ] @
Zelim napisati funkciju koja kao argument prima tip podatka (int, double ili sl..).. Kako? Hvala |
[ itf @ 23.01.2006. 17:01 ] @
[ Mali Misha @ 23.01.2006. 17:16 ] @
Za sta ce ti takva f-ja? Ne kazem da nema primenu vec da ne shvatam problem u potpunosti.
Moguce je da ce upotreba tipa void* raditi posao. Inace, mozes da enumerises moguce tipove (v. enum) i f-ji prosledjujes odgovarajuce vrednosti kao i da lepo oponasas stdio pa tip navodis u const. stringovima. [ Dragi Tata @ 23.01.2006. 17:23 ] @
Tebi u stvari treba šablon funkcija (template function).
[ NrmMyth @ 23.01.2006. 18:08 ] @
To i nista drugo!
Ili preopterecuj ako ti je draze... [Ovu poruku je menjao NrmMyth dana 23.01.2006. u 19:09 GMT+1] [ itf @ 24.01.2006. 08:01 ] @
Neznam da li ste radili sa funkcijama koje uzimaju neogranicen broj argumenata. Tada postoji macro va_list, a on kao drugi parametar prima TIP varijable koja se sljedeca treba dohvatiti iz takve funkcije.
Sjetite se funkcije printf... Sablone (template) je opet ista stvar. Time radim sa podacima bilo kojeg tipa, ali ja zelim znati kako definirati tip podatka kao argument. void * je ok, ali to je adresa varijable bilo kojeg tipa. Zelim znati kako identificirati pojedini tip podatka koji se proslijedi funkciji. To pogotovo ima smisla bas kod template funkcija, a i kod funkcija sa neogranicenim brojem argumenata. [ chupcko @ 24.01.2006. 08:20 ] @
Zelis li to u c-u ili c++ ?
U jednom "lako" moze, a u drugom teskooooooooo, bez neke discipline u pozivanju :). [ itf @ 24.01.2006. 08:38 ] @
Pa ako znas, daj i jedno i drugo :)
Ako nemas volje, daj barem napisi za C++. Hvala [ salec @ 24.01.2006. 09:50 ] @
Citat: itf: Sjetite se funkcije printf... Los primer. printf-u ti "nacrtas" u format stringu sta mu je sta, a on poznaje samo konacan broj osnovnih tipova podataka. typeof nije keyword standardnog C++, ali... http://www.codeproject.com/vcpp/stl/typeof.asp http://gcc.gnu.org/onlinedocs/gcc/Typeof.html uostalom: http://www.google.com/search?q=typeof [Ovu poruku je menjao salec dana 24.01.2006. u 10:52 GMT+1] [Ovu poruku je menjao salec dana 24.01.2006. u 10:52 GMT+1] [ Časlav Ilić @ 24.01.2006. 12:05 ] @
Zbog čega ti je tačno potrebno raspoznavanje tipova, šta funkcija treba da uradi sa tim argumetima? Verovatno postoji bolje rešenje, više u duhu C++a, nego što je određivanje tipova u toku izvršavanja.
[ itf @ 24.01.2006. 13:41 ] @
Kada radim predlozak funkcije (template) zelim da mi se u ovisnosti o tipovima podataka neke akcije obavljaju na jedan tj. drugi nacin.
[ Mali Misha @ 24.01.2006. 16:22 ] @
pada na pamet:
1. enum tipova pa redundantni pozivi 2. Za sopstvene objekte: nasledjivanje. definisanje virtuelne f-je u jednoj klasi a razlicitih dejstava iste u zavisnosti od tipa objekta u klasama samih objekata koje nasledjuju tu klasu. [Ovu poruku je menjao Mali Misha dana 24.01.2006. u 17:28 GMT+1] [ NastyBoy @ 24.01.2006. 16:51 ] @
Citat: Kada radim predlozak funkcije (template) zelim da mi se u ovisnosti o tipovima podataka neke akcije obavljaju na jedan tj. drugi nacin. U tom sluchaju ti treba "Multimethod paradigm", gde se pozivi funkcija dispechuju u zavisnosti od prosledjenih argumenata. (Ovo se, recimo, chesto koristi u fizichkim simulacijama, gde se kolizija razreshava u zavisnosti od tipa objekta u koliziji) Konsultuj chika Alexadrescu-a i "Modern C++ Design" za info kako to (manje vishe) elegantno odraditi u C++u pomocu templejta [ kime1 @ 24.01.2006. 19:56 ] @
Mislim da ti to rešava najefikasnije operator typeid, odnosno funkcija typeid(objekat).name (), jer čini mi se da je preko preklapanja operatora malo komplikovanije...a šablon radi posao ako je ista obrada podataka,što kod tebe nije slučaj... a u C-u baš i ne znam kako to uraditi (ali verujem da može)?!
[Ovu poruku je menjao kime1 dana 24.01.2006. u 21:20 GMT+1] Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|