Jump to content

Mbingarkimi i operatorëve

Nga Wikipedia, enciklopedia e lirë

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.

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.

Në këtë rast, operatori i mbledhjes mbingarkohet për të lejuar shtimin në një tip të përcaktuar nga përdoruesi TimeC++ :

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_;
};
  1. ^ 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)