Konstruktor kopiujacy

JC
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 35
0

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

Kopiuj
#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.

RE
  • Rejestracja: dni
  • Ostatnio: dni
0

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

JC
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 35
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...

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

?

_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
0

użyj: memcpy()

JC
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 35
0
Kopiuj
Bar& operator=(const Bar rhs)
{
  swap(rhs);
  return *this;
}

Tak może być przez swap ?

Ale nie rozumiem nadal po co konstuktor kopiujacy ?

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.