Mbingarkimi i operatorëve
Në programimin kompjuterik, mbingarkimi i operatorit, ndonjëherë e quajtur polimorfizëm ad hoc i operatorit, është një rast specifik i polimorfizmit, ku operatorë të ndryshëm kanë zbatime të ndryshme në varësi të argumenteve të tyre. Mbingarkimi i operatorit në përgjithësi përcaktohet nga një gjuhë programimi, një programues ose të dyja.
Arsyetimi
[Redakto | Redakto nëpërmjet kodit]Mbingarkimi i operatorit është sheqer sintaksor dhe përdoret sepse lejon programimin duke përdorur shënime më afër fushës së synuar [1] dhe lejon tipet e përcaktuara nga përdoruesi një nivel të ngjashëm mbështetjeje sintaksore si llojet e ndërtuara në një gjuhë. Është e zakonshme, për shembull, në llogaritjen shkencore, ku lejon që paraqitjet llogaritëse të objekteve matematikore të manipulohen me të njëjtën sintaksë si në letër.
Shembuj
[Redakto | Redakto nëpërmjet kodit]
Në këtë rast, operatori i mbledhjes mbingarkohet për të lejuar shtimin në një tip të përcaktuar nga përdoruesi Time
në C++ :
Time operator+(const Time& lhs, const Time& rhs) {
Time temp = lhs;
temp.seconds += rhs.seconds;
temp.minutes += temp.seconds / 60;
temp.seconds %= 60;
temp.minutes += rhs.minutes;
temp.hours += temp.minutes / 60;
temp.minutes %= 60;
temp.hours += rhs.hours;
return temp;
}
Mbledhja është një operacion binar, që do të thotë se ka dy operande. Në C++, argumentet që kalohen janë operandët, dhe objekti temp
është vlera e kthyer.
Operatori "më i vogël" (<) shpesh mbingarkohet për të renditur një strukturë ose klasë:
class Pair {
public:
bool operator<(const Pair& p) const {
if (x_ == p.x_) {
return y_ < p.y_;
}
return x_ < p.x_;
}
private:
int x_;
int y_;
};
- ^ Stroustrup, Bjarne. "Operator Overloading". C++ FAQ. Arkivuar nga origjinali më 14 gusht 2011. Marrë më 27 gusht 2020.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja)