Ti mikor terhelitek túl az operátorokat? C++
1)
Akkor ha kód olvashatóságát javítja, olyan műveletet hajt végre amit megszoktunk tőlle, az előző példánál maradva van int, float, double stb típusok melyek szám típusok. Ha csináltunk egy tört osztályt az is egy szám típus. Minden beépített számtípushoz tartozik + - / * >= == stb operátor. A tört osztályhoz is egy szám típus, logikus úgy tekintetni rá mint a többi számtípusra, logikus megírni ezeket az operátorokat ehhez az osztályhoz. Miért kivételenénk vele?
A cout is úgy működik hogy a << operátor van túlterhelve. pl.: cout << a << " "<< b << " " << c; Ha a b és c különböző típusak akkor << -ra különböző operátor eljárások hívódnak meg. Ha d egy int akkor kiírathatom az értékét cout << d, ha e egy tört típus akkor miért ne így írnám ki egyszerűen : cout << d ?
2)
Ha bizonyos template-ket írunk vagy használunk fel. Általánosan írjuk le a kódot template-be konkrét osztály nélkül, informatívabb operátorokkal, így minden eddig megírt meg eddig meg nem írt osztályon működik amin értelmezve van az adott operátor,
Az STL-ben van a pl. a map template, ami a kulcsokat rendezve tárolja, ezt csak akkor tudja ha van rendezési reláció, túl van terhelve a < oparátor az adott osztály-on.
További kérdések:
Minden jog fenntartva © 2025, 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!