fork download
  1. #include <iostream>
  2. #include <cstring>
  3. using namespace std;
  4. class Procesor {
  5. private:
  6. string marka;
  7. int czestotliwosc;
  8.  
  9. public:
  10. Procesor()
  11. : marka("Radeon")
  12. , czestotliwosc(1000)
  13. {
  14. #ifdef TESTPR
  15. cout << "Dziala konstruktor domyslny Procesor()" << endl;
  16. #endif
  17. }
  18.  
  19. ~Procesor()
  20. {
  21. #ifdef TESTPR
  22. cout << "Dziala destruktor ~Procesor()" << endl;
  23. #endif
  24. }
  25. void infoprocesor()
  26. {
  27. cout << "marka procesora " << marka << endl;
  28. cout << " czestotliwosc procesora : " << czestotliwosc << endl;
  29. }
  30. };
  31.  
  32.  
  33. #include <iostream>
  34. //#include "Karta.h"
  35. using namespace std;
  36. class Karta {
  37. private:
  38. string nazwa;
  39. int pamiec;
  40.  
  41. public:
  42. Karta()
  43. : nazwa("Nvidia")
  44. , pamiec(2000)
  45. {
  46. //cout << "Karta " << endl;
  47. #ifdef TESTPR
  48. cout << "Dziala konstruktor dynamiczny Karta()" << endl;
  49. #endif
  50. }
  51. ~Karta()
  52. {
  53. #ifdef TESTPR
  54. cout << "Dziala destruktor ~Karta()" << endl;
  55. #endif
  56. }
  57. void wyswietlinfo()
  58. {
  59. cout << "nazwa karty" << nazwa << endl;
  60. cout << " pamiec karty" << pamiec << endl;
  61. }
  62. };
  63.  
  64.  
  65.  
  66. typedef int TypDanychT;
  67. class Komputer {
  68. private:
  69. string wykonawca;
  70. string producent;
  71. Procesor procesor;
  72. static int licznik;
  73. int dysk;
  74. Karta* karta;
  75. int ram;
  76.  
  77. public:
  78. friend ostream& operator<<(ostream&, Komputer const&);
  79. Komputer(int x, int y)
  80. {
  81. this->x = x;
  82. this->y = y;
  83. }
  84. static int zwrocLicznik() { return licznik; }
  85. int x, y;
  86. Komputer()
  87. {
  88. karta = NULL;
  89.  
  90. //cout << "konstruktor" << endl;
  91. x = 3;
  92. y = 5;
  93. dysk = 500;
  94. ram = 2000;
  95. ++licznik;
  96. #ifdef TESTPR
  97. cout << "Dziala konstruktor domyslny Komputer()" << endl;
  98. #endif
  99. }
  100.  
  101. void dodajkarta()
  102. {
  103. if (karta == NULL)
  104. karta = new Karta();
  105. cout << "dodana karta" << endl;
  106. }
  107.  
  108. void usunkarta()
  109. {
  110. if (karta)
  111. delete karta;
  112. cout << "usunieto karta" << endl;
  113. }
  114.  
  115. void infokomp()
  116. {
  117. cout << "dysk ma pojemnosc " << dysk << endl;
  118. cout << "pamiec ram wynosci " << ram << endl;
  119. if (karta)
  120. karta->wyswietlinfo();
  121. procesor.infoprocesor();
  122. }
  123.  
  124. Komputer(const Komputer& o)
  125. {
  126. #ifdef TESTPR
  127. cout << "Dziala konstruktor kopiujacy Komputer()" << endl;
  128. #endif
  129.  
  130. producent = o.producent;
  131. wykonawca = o.wykonawca;
  132. procesor = o.procesor;
  133. dysk = o.dysk;
  134. if (o.karta != NULL)
  135. karta = new Karta(*o.karta);
  136. cout << "konstruktor kopiujacy sie wywolal " << endl;
  137. cout << "pojemnosc dysku komputera wynosi " << dysk << endl;
  138. }
  139.  
  140. ~Komputer()
  141. {
  142. --licznik;
  143. #ifdef TESTPR
  144. cout << "Dziala desturktor ~Komputer()" << endl;
  145. #endif
  146. }
  147.  
  148. bool operator==(const Komputer& k) { return producent == k.producent; }
  149.  
  150. void setProducent(string producent) { this->producent = producent; }
  151.  
  152. Komputer& operator=(const Komputer& p)
  153. {
  154. cout << "operator przypisania" << endl;
  155. dysk = p.dysk;
  156. ram = p.ram;
  157. if (p.karta != NULL)
  158. {
  159. if (karta == NULL) karta = new Karta;
  160. *karta = *p.karta;
  161. }
  162. return *this;
  163. }
  164.  
  165. Komputer operator+(Komputer& m)
  166. {
  167. cout << "operator + " << endl;
  168. Komputer temp;
  169. temp.x = x + m.x;
  170. temp.y = y + m.y;
  171. return temp;
  172. }
  173. // void przypisania::operator = (przypisania &b)
  174.  
  175. //ostream& operator<< (ostream &wyjscie, Komputer const& ex)
  176. // {
  177. // wyjscie << "Pierwsza liczba: " << ex.pierwsza << " oraz druga: " << ex.druga << endl;
  178. //return wyjscie;
  179. // }
  180. };
  181.  
  182.  
  183.  
  184. int Komputer::licznik = 0;
  185.  
  186. int main()
  187. {
  188. //Karta *karta;
  189. //karta = new Karta();
  190.  
  191. cout << "Jest " << Komputer::zwrocLicznik() << " komputerow" << endl;
  192. Komputer k1;
  193. cout << "Jest " << Komputer::zwrocLicznik() << " komputer" << endl;
  194. Komputer k2;
  195. cout << "Sa " << Komputer::zwrocLicznik() << " komputery" << endl;
  196. Komputer* k3;
  197. cout << "Jestesmy po deklaracjach/definicjach" << endl;
  198. k3 = new Komputer();
  199. cout << "Sa " << Komputer::zwrocLicznik() << " komputery" << endl;
  200. cout << (k1 == k2) << endl;
  201. cout << "procesory sa takie same wiec zwrocilo 1" << endl;
  202. k2.setProducent("Intel");
  203. cout << (k1.operator==(k2)) << endl;
  204. cout << "procesory nie sa takie same wiec zwrocilo 0" << endl;
  205. cout << "Jest " << Komputer::zwrocLicznik() << " komputerow" << endl;
  206. delete k3;
  207. cout << "Jest " << Komputer::zwrocLicznik() << " komputerow bo usunelam jeden hah" << endl;
  208. Komputer k5;
  209. cout << "Jest " << Komputer::zwrocLicznik() << " komputerow" << endl;
  210.  
  211. Komputer k6(k5); // konstruktor kopiujacy
  212. Komputer k7;
  213. Komputer k8;
  214. k7 = k8;
  215. k7 = k2 + k1;
  216. k2.dodajkarta();
  217. k2.usunkarta();
  218. k1.infokomp();
  219.  
  220. return 0;
  221. }
Success #stdin #stdout 0s 3476KB
stdin
Standard input is empty
stdout
Jest 0 komputerow
Jest 1 komputer
Sa 2 komputery
Jestesmy po deklaracjach/definicjach
Sa 3 komputery
1
procesory sa takie same wiec zwrocilo 1
0
procesory nie sa takie same wiec zwrocilo 0
Jest 3 komputerow
Jest 2 komputerow bo usunelam jeden hah
Jest 3 komputerow
konstruktor kopiujacy sie wywolal 
pojemnosc dysku komputera wynosi 500
operator przypisania
operator + 
operator przypisania
dodana karta
usunieto karta
dysk ma pojemnosc  500
pamiec ram wynosci 2000
marka procesora Radeon
 czestotliwosc procesora : 1000