Skip to content
EntityQ332629· pop 19· linked from 164 articles

przeciążanie operatorów

Sign in to save

Also known as user-defined operator, ad hoc polymorphism

type of polymorphism in some programming languages where operators have different implementations depending on their arguments

Wikidata facts

Show 1 more fact
partially coincident with
function overloading
Sources (1)

via Wikidata · CC0

Article · Polski

Przeciążanie operatorów (ang. operator overloading) lub przeładowanie operatorów – rodzaj polimorfizmu występującego w niektórych językach programowania, polegający na tym, że operator może mieć różne implementacje w zależności od typów użytych argumentów (operandów). Przeciążanie operatorów to typowy lukier składniowy. Potencjalnie znacznie poprawia czytelność kodu i umożliwia zdefiniowanie większej części biblioteki standardowej na poziomie języka, bez uciekania się do trików. Z drugiej strony, ta technika programistyczna może spowodować powstawanie niejasnych konstrukcji, gdzie operatory wykonują kompletnie różne czynności w zależności od ich operandów. Na przykład wyrażenie w C++: a << 1 normalnie oznacza przesunięcie bitowe liczby a w lewo. Jeśli a jest strumieniem, oznacza to przesłanie liczby 1 do tego strumienia. Jak jednak interpretować ten fragment gdy a jest oknem? Z tego powodu zalecane jest, aby przeciążać tylko te operatory, których znaczenia łatwo się domyślić, gdyż mają swój odpowiednik w matematyce, fizyce itp.

Abstract from DBpedia / Wikipedia · CC BY-SA