Mamy kod:
B = A;
Zmienne A i B sa obiektami.
Podejście 1: "Niech wskaźnik B wskazuje na ten sam obszar pamięci, co wskaźnik A."
Podejście 2: "Zbuduj obiekt B identyczny, jak obiekt A, wskaźniki A i B wskazują na dwa rozłączne obszary pamięci, których zawartość jest identyczna."
Pierwsze podejście jest zastosowane w przypadku obiektów, na przykład typu "Bitmap", a drugie jest w przypadku zmiennej typu "int", "string" itp.
Na przykład jest program:
Bitmap A = new Bitmap(320,240);
Bitmap B = new Bitmap(320,240);
// instrukcje rysujące na bitmapie A
B = A;
// ???
Zastosowane jest podejście 1, czyli jak w miejscu ??? dopisze się dalsze operacje na bitmapie A, to rysunek zmieni się również na bitmapie B.
A jak ja potrzebuję mieć kopie rysunku, to na przykład mogę wykonać przerysowanie wszystkich pikseli w pętli, ale to chyba nie najlepszy sposób.
Czy istnieje uniwersalny sposób wymuszający podejście 2, działający na obiektach dowolnego typu?