Иллюстрированный самоучитель по Architecture .NET

Копирование объектов и интерфейс icioneable

Копирование указателей с помощью присваивания

Первым способом копирования является просто присваивание рС2=рС1. В этом случае мы получаем два указателя на один и тот же объект, и изменения, произведенные с использованием первого указателя, можно будет обнаружить в данных, адресуемых вторым указателем.

_gc class CopyDemo
// класс сборщика мусора CopyDemo
{
public:
static void Main()
{
Console::WriteLine("Copy is done via pC2 = pCl");
// Копия сделана через рС2 = pCl
InitializeCourse();
pC1 › Show("original"); // Показать ("оригинал");
pC2 = pCl;
pC2 › Show("copy"); // Показать ("копия");
pC2 › pTitle = ".NET Programming"; // Программирование на .NET
pC2 › AddStudent("Charlie"); // Чарли
pC2 › Show("copy with changed title and new student"};
// Показать ("копия с измененным названием
//и новым студентом");
pC1 › Show("original"); // Показать ("оригинал");

Экземпляр класса Course (Курс) инициализируется методом InitializeCourse, причем в качестве названия курса выбирается "Intro to Managed C++" (Введение в управляемый C++) и на курс записаны два студента. Затем выполняется присваивание рС2=рС1, и с помощью указателя рС2 изменяется заголовок и добавляется новый студент. Затем демонстрируется, что произведенные изменения видны с помощью обоих указателей. Приведем результат работы первой части программы:

Copy is done via pC2 = pC1
--original-----
Course: Intro to Managed C++ with 2 students
John
Mary
– copy-– -
Course: Intro to Managed C++ with 2 students
John
Mary
– copy with changed title and new student-----
Course: .NET Programming with 3 students
John
Mary
Charlie
– --original-----
Course: .NET Programming with 3 students
John
Mary
Charlie

А вот и перевод выдачи:

Копия сделана через рС2 = рС1
– --оригинал--–
Курс: Введение в Управляемый С ++ с 2 студентами
Джон
Мэри
– --копия-----
Курс: Введение в Управляемый С ++ с 2 студентами
Джон
Мэри
– --копия с измененным названием и новым студентом-----
Курс: Программирование на .NET с 3 студентами
Джон
Мэри
Чарли
– --оригинал-----
Курс: Программирование на .NET с 3 студентами
Джон
Мэри
Чарли
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.