Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- class Klasa
- {
- public:
- Klasa();
- Klasa(Klasa&);
- ~Klasa();
- Klasa& operator=(const Klasa&);
- void wypisz();
- private:
- int wartosc;
- int* wskaznik;
- };
- Klasa::Klasa() : wartosc(15)
- {
- wskaznik = new int;
- *wskaznik = 20;
- }
- Klasa::Klasa(Klasa& obiekt) : wartosc(obiekt.wartosc)
- {
- // wskaznik = obiekt.wskaznik; ŹLE
- cout << "uruchamiam konstruktor kopiujacy\n";
- wskaznik = new int;
- *wskaznik = *(obiekt.wskaznik);
- }
- Klasa::~Klasa()
- {
- delete wskaznik;
- cout << "usunieto obiekt\n";
- }
- Klasa& Klasa::operator=(const Klasa& obiekt)
- {
- cout << "uruchamiam operator przypisania\n";
- Klasa* wynik = new Klasa;
- wynik->wartosc = obiekt.wartosc;
- wynik->wskaznik = new int;
- *(wynik->wskaznik) = *(obiekt.wskaznik);
- return *wynik;
- }
- void Klasa::wypisz()
- {
- cout << "wartosc: " << wartosc << endl;
- cout << "wartosc wskaznika: " << *wskaznik << endl;
- cout << "adres wskaznika: " << wskaznik << endl;
- }
- int main()
- {
- Klasa A;
- Klasa B = A; // konstruktor kopiujący
- Klasa C(A); // konstruktor kopiujący
- A = C; // operator przypisania
- A.wypisz();
- B.wypisz();
- C.wypisz();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement