Witam,
kopię możesz sobie łatwo wyobrazić stosując konstruktor kopiujący
class Punkt
{
public:
int X, Y;
Punkt() {X=0; Y=0;} //jeżeli go nie zdefiniujemy to w tej sytuacji kompilator nie zrobi tego za nas i deklaracja Punkt X() będzie błędna
Punkt(double fi, double r);
Punkt(Punkt &Pkt) {X=Pkt.X; Y=Pkt.Y;} //konstruktor kopiujący
};
Taka klasa używa konstruktora kopiującego do skopiowania danych. W sumie rozumie się samo przez siebie. Jeszcze często w programie na kopiach działają funkcje. Na przykład int jakasFun(int a), jeśli prześlesz funkcji zmienną to funkcja tworzy kopię i na niej działa a po wyjściu usuwa ją. Normalnie możesz skopiować dane używając operatora= np.
int a = 3;
int b;
b = a; // teraz b kopiuje wartość z a i b równa się 3
Jak uniemożliwić ich tworzenie?
Spróbuj dodać konstruktor kopiujący i operator= do sekcji private: