Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstring>
- #include <stdexcept>
- struct Ekipa {
- char drzava[20];
- int br_odigranih, br_pobjeda,br_nerjesenih, br_poraza, br_datih, br_primljenih, br_poena;
- };
- class SvjetskoPrvenstvo {
- int kapacitet, broj_ekipa;
- Ekipa *ekipe;
- public:
- explicit SvjetskoPrvenstvo(int kapacitet) : kapacitet(kapacitet), broj_ekipa(0), ekipe(new Ekipa[kapacitet]) {}
- ~SvjetskoPrvenstvo() {delete[] ekipe;}
- //kopirajuci konstruktor
- SvjetskoPrvenstvo(const SvjetskoPrvenstvo &s) : kapacitet(s.kapacitet), broj_ekipa(s.broj_ekipa), ekipe(new Ekipa[kapacitet]) {
- for(int i{}; i<broj_ekipa; i++) {
- ekipe[i] = s.ekipe[i];
- }
- }
- //pomjerajuci konstruktor
- SvjetskoPrvenstvo(SvjetskoPrvenstvo &&s) : kapacitet(s.kapacitet), broj_ekipa(s.broj_ekipa) {
- delete[] ekipe;
- ekipe = new Ekipa[kapacitet];
- ekipe = std::move(s.ekipe);
- }
- //kopirajuci operator dodjele
- SvjetskoPrvenstvo &operator =(const SvjetskoPrvenstvo &s) {
- delete[] ekipe;
- ekipe = new Ekipa[kapacitet];
- for(int i{}; i<broj_ekipa; i++) {
- ekipe[i] = s.ekipe[i];
- }
- return *this;
- }
- // pomjerajuci operator dodjele
- SvjetskoPrvenstvo &operator =(SvjetskoPrvenstvo &&s) {
- delete[] ekipe;
- ekipe = new Ekipa[kapacitet];
- ekipe = std::move(s.ekipe);
- return *this;
- }
- void RegistrirajEkipu(Ekipa &e) {
- if(broj_ekipa>=kapacitet) throw std::range_error ("Popunjen kapacitet!");
- ekipe[broj_ekipa++] = e;
- }
- Ekipa &DajEkipu(int redni_broj) {return ekipe[redni_broj-1];}
- Ekipa DajEkipu(int redni_broj) const {return ekipe[redni_broj-1];}
- };
- int main ()
- {
- Ekipa *e1, *e2;
- e1 = new Ekipa;
- e2 = new Ekipa;
- std::strcpy(e1->drzava, "Hrvatska");
- std::strcpy(e2->drzava, "Argentina");
- SvjetskoPrvenstvo Rusija2018(60);
- Rusija2018.RegistrirajEkipu(*e2);
- Rusija2018.RegistrirajEkipu(*e1);
- std::cout << Rusija2018.DajEkipu(1).drzava << std::endl;
- std::cout << Rusija2018.DajEkipu(2).drzava << std::endl;
- delete e1;
- delete e2;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement