Hogyan lehet C-ben egy függvényt "felülírni"?
Tegyük fel, hogy van egy deklarált func1 függvény;
int func1(int a; int b);
Meg egy "rendesen" megírt függvény:
int func2(int a, int b) {valami;}
Mit kell csinálni, hogy a func1 felülíródjon a func2-vel, és ha a func1-et hívom, akkor az történjen, mintha func2-t hívnám?
Bocsánat, ha retardáltság a kérdés, csak pythonhoz vagyok szokva. Próbálkoztam, és googliztam is, de nem találtam semmit.
Szóval, van egy header fájl, ami tartalmazza a CalcEntError függvény deklarációját.
double CalcEntError(Ent *ent);
Illetve néhány előre megírt hibafüggvény definícióját, pl. Error1, Error2...
Egy adott feladatra szánt programban definiálni kell a CalcEntError függvényt, akár egyedi módon ott a programkódban, akár hivatkozva valamelyik előregyártott függvényre ilyen módon:
double CalcEntError(Ent *ent) {return Error1(ent);}
Ez így "close enough" ahhoz, amit eredetileg akartam.
Csak megsúgom, hogy ez volt a #1 komment és a teljes mértékben triviális megfejtés.
Ezért NAGYON fölösleges volt kérdést kiírni.
Az amire gondol a kérdező azt polimorfizmusnak hívjuk és virtuális függvényekkel lehet megvalósítani, bár a C alapvetően nem támogatja, csak annak a fejletteb verziói (pl C++), de ennek ellenére itt egy lehetséges megoldás:
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!