optimalni +

Uživatelský avatar
hippies
Admin(ka) level I
Příspěvky: 990
Registrován: 29. 9. 2004 12:46
Typ studia: Informatika Mgr.
Bydliště: Mladá Boleslav
Kontaktovat uživatele:

optimalni +

Příspěvek od hippies »

otazka:
ktery z techto globalnich operatoru je nejvhodnejsi jako implementace scitani komplexnich cisel?

[A] Complex operator+ (Complex &, Complex &)
Complex operator+ (const Complex &, const Complex &)
[C] Complex operator+ (const Complex &, const Complex &) const
[D] const Complex operator+ (const Complex &, const Complex &)


odpoved:
B
(A - kdyby byly argumenty const, tak je nevezme. C,D - ty const z toho delaji nepouzitelne funkce - nebo hodne tezko pouzitelne)


Proč to není C? Nějak nechápu co je na něm nepoužitelnýho, vracim dočasnej objekt. Nemohu vymyslet konstrukci kde by to vadilo.

Jo a nějak nevim co znamená ta verze D, mohl by mi to prosím někdo objasnit?
Uživatelský avatar
Eubie
Matfyz(ák|ačka) level III
Příspěvky: 295
Registrován: 8. 10. 2005 15:35
Typ studia: Informatika Bc.
Kontaktovat uživatele:

Příspěvek od Eubie »

No to Dčko, to je že vrací konstantní Complex, ale to sis asi domyslel sám. Nad tim, kde by se to použilo hloubám bezúspěšně.

Dle mého skromného názoru je ta verze s constantní funkcí (ne metodou!) špatně právě proto, že to neni metoda, ale funkce. Totiž, const zaručuje, že danej kód nezmění objekt, na kterým se ten kód volal. Ale kde má tenhle kód ukazatel this? Nikde, protože to neni metoda, ale normoš globální funkce. Možná že kompilátor to sežere, to nemam páru, ale je to logicky divný.
Uživatelský avatar
hippies
Admin(ka) level I
Příspěvky: 990
Registrován: 29. 9. 2004 12:46
Typ studia: Informatika Mgr.
Bydliště: Mladá Boleslav
Kontaktovat uživatele:

Příspěvek od hippies »

Nojo, sem si nějak neuvědomil, že to nejsou metody, takže C je syntakticky blbost a to co jsem považoval za nejlepší není teda C, ale D. Prostě mi nějak nevadí, když ten dočasnej objekt, kterej dostanu bude konstantní.
Odpovědět

Zpět na „2005“