Avatar
Ondřej
Člen
Avatar
Ondřej:13.1.2016 18:05

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.1.2016 18:05
Avatar
tomisoka
Redaktor
Avatar
Odpovídá na Ondřej
tomisoka:13.1.2016 18:43

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.1.2016 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.