Т.е. ты про юник птр не смотрел я так понимаю. Может тебе и не сильно надо, МК. Но все же последнее скажу - представь, что у нас есть экземпляр класса "файл" или "поток(thread)", операция копирования лишена смысла (file2 = file1), странно иметь два хендла на один ресурс со своей позицией/буфером/... . Но за то логично делать перемещение объекта убивая старый и отдавая хендл на ресурс новому, при перемещении копируем лишь байты между объектами на стеке (что очень быстро). Иначе (без move семантики) тебе надо будет делать указатели на объекты, выделять память в хипе, а это очень дорогая и долгая операция.
Уже ближе, спасибо. Но тут опять много вопросов, почему не передача указателя, это же намного проще чем весь объект куда-то копировать. И указатель же не обязательно с new:
File file1("123.txt");
File* file2 = &file1;