Advertisement
Guest User

Untitled

a guest
Jun 19th, 2019
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.77 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstring>
  3. #include <stdexcept>
  4.  
  5.  
  6. struct Ekipa {
  7.  
  8. char drzava[20];
  9. int br_odigranih, br_pobjeda,br_nerjesenih, br_poraza, br_datih, br_primljenih, br_poena;
  10. };
  11.  
  12. class SvjetskoPrvenstvo {
  13.  
  14. int kapacitet, broj_ekipa;
  15. Ekipa *ekipe;
  16.  
  17.  
  18. public:
  19.  
  20. explicit SvjetskoPrvenstvo(int kapacitet) : kapacitet(kapacitet), broj_ekipa(0), ekipe(new Ekipa[kapacitet]) {}
  21. ~SvjetskoPrvenstvo() {delete[] ekipe;}
  22.  
  23. //kopirajuci konstruktor
  24.  
  25. SvjetskoPrvenstvo(const SvjetskoPrvenstvo &s) : kapacitet(s.kapacitet), broj_ekipa(s.broj_ekipa), ekipe(new Ekipa[kapacitet]) {
  26.  
  27. for(int i{}; i<broj_ekipa; i++) {
  28. ekipe[i] = s.ekipe[i];
  29. }
  30. }
  31. //pomjerajuci konstruktor
  32. SvjetskoPrvenstvo(SvjetskoPrvenstvo &&s) : kapacitet(s.kapacitet), broj_ekipa(s.broj_ekipa) {
  33.  
  34. delete[] ekipe;
  35.  
  36. ekipe = new Ekipa[kapacitet];
  37. ekipe = std::move(s.ekipe);
  38.  
  39. }
  40.  
  41. //kopirajuci operator dodjele
  42.  
  43. SvjetskoPrvenstvo &operator =(const SvjetskoPrvenstvo &s) {
  44.  
  45. delete[] ekipe;
  46.  
  47. ekipe = new Ekipa[kapacitet];
  48.  
  49. for(int i{}; i<broj_ekipa; i++) {
  50. ekipe[i] = s.ekipe[i];
  51. }
  52. return *this;
  53.  
  54.  
  55. }
  56.  
  57. // pomjerajuci operator dodjele
  58. SvjetskoPrvenstvo &operator =(SvjetskoPrvenstvo &&s) {
  59.  
  60. delete[] ekipe;
  61.  
  62. ekipe = new Ekipa[kapacitet];
  63.  
  64. ekipe = std::move(s.ekipe);
  65.  
  66. return *this;
  67.  
  68.  
  69. }
  70.  
  71.  
  72.  
  73.  
  74.  
  75. void RegistrirajEkipu(Ekipa &e) {
  76. if(broj_ekipa>=kapacitet) throw std::range_error ("Popunjen kapacitet!");
  77. ekipe[broj_ekipa++] = e;
  78. }
  79. Ekipa &DajEkipu(int redni_broj) {return ekipe[redni_broj-1];}
  80. Ekipa DajEkipu(int redni_broj) const {return ekipe[redni_broj-1];}
  81.  
  82.  
  83. };
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100. int main ()
  101. {
  102. Ekipa *e1, *e2;
  103. e1 = new Ekipa;
  104. e2 = new Ekipa;
  105.  
  106. std::strcpy(e1->drzava, "Hrvatska");
  107. std::strcpy(e2->drzava, "Argentina");
  108. SvjetskoPrvenstvo Rusija2018(60);
  109. Rusija2018.RegistrirajEkipu(*e2);
  110. Rusija2018.RegistrirajEkipu(*e1);
  111. std::cout << Rusija2018.DajEkipu(1).drzava << std::endl;
  112. std::cout << Rusija2018.DajEkipu(2).drzava << std::endl;
  113.  
  114. delete e1;
  115. delete e2;
  116. return 0;
  117. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement