Konstruktor kopiujacy

0

Mam problem z takim zadaniem, poniższy kod trzeba uzupelnic poprzez dodanie konstruktora kopiujacego oraz operatora=kopiujacego.

#include <iostream>
#include <cstring>
using namespace std;

class Bar {

   char tab[100];

public:

   Bar(const char* s) { strcpy( tab, s ); }

//  konstruktor kopiujacy

//  operator= kopiujacy

   const char* get() const { return tab; }

};

int main() {

Bar *p = new Bar("raz dwa");
Bar p1 = *p;
Bar p2("trzy cztery");
cout << p->get() << endl;
cout << p1.get() << endl;
cout << p2.get() << endl;
p2 = p1;
cout << p2.get() << endl;

delete p;
}

Prosilbym o jakies wskazowki jak to wykonac.

0

Pokaż co do tej pory zrobiłeś. Na pewno na zajęciach jakieś przykłady z konstruktorem i operatorem kopiującym miałeś.

0

W tresci zadania mam napisane: prosze napisac konstruktor kopiujacy i operator= kopiujacy

Ale nie w programie nie ma zastosowanego konstruktora kopiujacego wiec jak, bo sam nie rozumiem...

Bar& operator=(const Bar &przypisana)
    {
        s = przypisana.s;
        return *this;
    }

?

0

użyj: memcpy()

0
Bar& operator=(const Bar rhs)
{
  swap(rhs);
  return *this;
}

Tak może być przez swap ?

Ale nie rozumiem nadal po co konstuktor kopiujacy ?

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0