Commit 26511aef by Patryk Czarnik

konstruktor kopiujący oraz operator=

parent bf2f2b37
...@@ -21,15 +21,25 @@ Wektor::Wektor() ...@@ -21,15 +21,25 @@ Wektor::Wektor()
// co powodowałoby mnóstwo problemów: // co powodowałoby mnóstwo problemów:
// - wzajemne nadpisywanie zawartości podczas operowania na dwóch zmiennych // - wzajemne nadpisywanie zawartości podczas operowania na dwóch zmiennych
// - double free pod koniec życia obiektów // - double free pod koniec życia obiektów
// Wektor::Wektor(const Wektor &zrodlowy) Wektor::Wektor(const Wektor &zrodlowy)
// : rozmiar_tablicy{zrodlowy.rozmiar_tablicy}, : rozmiar_tablicy{zrodlowy.rozmiar_tablicy},
// liczba_elementow{zrodlowy.liczba_elementow} liczba_elementow{zrodlowy.liczba_elementow}
// { {
// t = new TypWartosci[rozmiar_tablicy]; t = new TypWartosci[rozmiar_tablicy];
// for(TypIndeksu i=0; i<liczba_elementow; i++) { for(TypIndeksu i=0; i<liczba_elementow; i++) {
// t[i] = zrodlowy.t[i]; t[i] = zrodlowy.t[i];
// } }
// } }
Wektor& Wektor::operator=(const Wektor &zrodlowy) {
rozmiar_tablicy = zrodlowy.rozmiar_tablicy;
liczba_elementow = zrodlowy.liczba_elementow;
t = new TypWartosci[rozmiar_tablicy];
for(TypIndeksu i=0; i<liczba_elementow; i++) {
t[i] = zrodlowy.t[i];
}
return *this;
}
Wektor::~Wektor() { Wektor::~Wektor() {
std::cout << "destruct\n"; std::cout << "destruct\n";
......
...@@ -20,7 +20,9 @@ class Wektor { ...@@ -20,7 +20,9 @@ class Wektor {
public: public:
Wektor(); Wektor();
//Wektor(const Wektor&); Wektor(const Wektor&);
Wektor& operator=(const Wektor&);
~Wektor(); ~Wektor();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment