Jak napisać konstruktor kopiujący oraz operator przypisania?

0

Witam.
Chcę napisać konstruktor kopiujący oraz operator przypisania, zastanawiam się czy jeśli moimi polami są tablicę to wystarczy zrobić tak:

		RozkladLiczby::RozkladLiczby(const RozkladLiczby &rozkladLiczby){
			najmniejszyDzielnik = rozkladLiczby.najmniejszyDzielnik;
			tab = rozkladLiczby.tab;
		}

Czy muszę kopiować każdą wartość tablicy osobno, a jeśli tak to jak mam pobrać długość tablicy, żeby stworzyć nową o takim samym rozmiarze? No i w sumie to samo się tyczy operatora przypisania.

		RozkladLiczby& RozkladLiczby::operator=(const RozkladLiczby &rozkladLiczby){
			najmniejszyDzielnik = rozkladLiczby.najmniejszyDzielnik;
			tab = rozkladLiczby.tab;
			return *this;
		} 
2
barslo napisał(a):

zastanawiam się czy jeśli moimi polami są tablicę to wystarczy zrobić tak:
NIE.

Czy muszę kopiować każdą wartość tablicy osobno
TAK.

a jeśli tak to jak mam pobrać długość tablicy, żeby stworzyć nową o takim samym rozmiarze?
Najwygodniej to użyć std::array lub std::vector i wtedy masz metodę size(). Jeśli to tablica statyczna to można się pobawić z sizeof, a jeśli dynamiczna to musisz trzymać dodatkowe pole z rozmiarem.

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