Advertisement
MeehoweCK

Untitled

May 31st, 2020
1,238
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.29 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. class Klasa
  6. {
  7. public:
  8.     Klasa();
  9.     Klasa(Klasa&);
  10.     ~Klasa();
  11.     Klasa& operator=(const Klasa&);
  12.     void wypisz();
  13. private:
  14.     int wartosc;
  15.     int* wskaznik;
  16. };
  17.  
  18. Klasa::Klasa() : wartosc(15)
  19. {
  20.     wskaznik = new int;
  21.     *wskaznik = 20;
  22. }
  23.  
  24. Klasa::Klasa(Klasa& obiekt) : wartosc(obiekt.wartosc)
  25. {
  26.     // wskaznik = obiekt.wskaznik;  ŹLE
  27.     cout << "uruchamiam konstruktor kopiujacy\n";
  28.     wskaznik = new int;
  29.     *wskaznik = *(obiekt.wskaznik);
  30. }
  31.  
  32. Klasa::~Klasa()
  33. {
  34.     delete wskaznik;
  35.     cout << "usunieto obiekt\n";
  36. }
  37.  
  38. Klasa& Klasa::operator=(const Klasa& obiekt)
  39. {
  40.     cout << "uruchamiam operator przypisania\n";
  41.     Klasa* wynik = new Klasa;
  42.     wynik->wartosc = obiekt.wartosc;
  43.     wynik->wskaznik = new int;
  44.     *(wynik->wskaznik) = *(obiekt.wskaznik);
  45.     return *wynik;
  46. }
  47.  
  48. void Klasa::wypisz()
  49. {
  50.     cout << "wartosc: " << wartosc << endl;
  51.     cout << "wartosc wskaznika: " << *wskaznik << endl;
  52.     cout << "adres wskaznika: " << wskaznik << endl;
  53. }
  54.  
  55. int main()
  56. {
  57.     Klasa A;
  58.     Klasa B = A;        // konstruktor kopiujący
  59.     Klasa C(A);         // konstruktor kopiujący
  60.     A = C;              // operator przypisania
  61.  
  62.     A.wypisz();
  63.     B.wypisz();
  64.     C.wypisz();
  65.     return 0;
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement