Nadanie wartosci wskaznkom int w klasie

0

Witam !!

W klasie Zespolona chce utworzyć konstruktor kopiujący, który
przekopiuje wartości do z jednego obiektu, do drugiego, nowego.

Mam jednak problem z zapisem tego w formie kodu, gdyż biorą tutaj udział wskazniki, tak jak to widać w kodzie.
Uprzejmie prosiłbym o pomoc, jak to zapisać, aby było prawidłowo i działało.

Oczywiście nowy obiekt, ma być niezależny od starego, stąd konstruktor kopiujący.

Pozdrawiam !

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

class Zespolona
{
	float *a;
	float *b;
public:

	Zespolona(float,float);
	Zespolona(Zespolona &);
	void wypisz()
	{
		cout << *a;
		cout << *b;
	}


	


	

};

Zespolona::Zespolona(float x ,float y)
{
	a = new float(x);
	b = new float(y);
}
Zespolona::Zespolona(Zespolona & Zesp)
{
	*a = *(Zesp.a);
	*b = *(Zesp.b);
}

int main()
{

	Zespolona z1(2, 3);
	Zespolona z2 = z1;
	z1.wypisz();
	

	int a;
	cin >> a;


	
	
	

	return 0;
} 
1

Wywal te wskaźniki, to głupota.

0

Wykładowca kazał, aby zmienne w klasie były alokowane dynamicznie :(

0
Zespolona::Zespolona( Zespolona & Zesp)
{
	a = new float(*Zesp.a);
	b = new float(*Zesp.b);
} 

Zmodyfikowałem konstruktor kopiujący, bo zrozumiałem na czym polegał błąd.
Pytanie czy jest to poprawnie ?

0

Tak jest poprawnie.
Jednak potrzebujesz jeszcze destruktor, bo aktualnie nigdzie nie zwalniasz tej pamięci.

0

Popraw jeszcze wypisz() bo aktualnie jest do d...opracowania.

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