Diskuze: Přetěžování operátorů - pomoc

C++ C a C++ Přetěžování operátorů - pomoc

Avatar
Ondřej
Člen
Avatar
Ondřej:

Zdravím,

na škole studuji programování a nepochopil jsem, jak přesně funguje a jak se používá přetěžování operátorů. Dostali jsme příklad a po definování a naplnění struktury nevím jak v něm dál pokračovat. Věřím že pro někoho kdo se tím zabývá je to otázka pár minut ale já bych potřeboval vysvětlit jak to funguje a nejlépe i ukázat na příkladu.

  • Vytvořte nový datový typ struktura reprezentující
  • datum s položkami – den, měsíc rok. Pro tuto strukturu
  • vytvořte přetížené operátory pro
  • - Porovnání (větší než i menší než) dvou dat.
  • - Inkrementace (zvětšení o jeden den) data
  • - Postinkrementace i preinkrementace
  • - Dekrementace data
  • - Rozdíl dvou dat
 
Odpovědět 13. ledna 18:05
Avatar
tomisoka
Redaktor
Avatar
Odpovídá na Ondřej
tomisoka:

Funguje to úplně stejně jako funkce, jen místo názvu funkce požiješ "operatorXX" (XX=přetěžovaný operátor) a nemůžeš to používat na pointery(což lze obejít pomocí "*pointer" ).

class Test{
public:
  Test(int data):data(data){}

  bool compare(Test& cmp){return data == cmp.data;}
  bool operator==(Test& cmp){return data == cmp.data;}

  int data;
};

int main(int argc, char *argv[]){

  Test test1(10);
  Test test2(10);
  Test test3(1);

  cout << test1.compare(test2) << endl;
  cout << (test1 == test2) << endl;

  cout << test1.compare(test3) << endl;
  cout << (test1 == test3) << endl;
  return 0;
}
 
Nahoru Odpovědět  +1 13. ledna 18:43
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.