Есть ли частичный конструктор копирования в C++?

Есть ли способ реализовать конструктор копирования в C++, который только копирует некоторые конкретные элементы и реализует перемещение для других членов.

Например, у меня есть класс

class partialCopy
{
   int a;
   int largeArray[1000] ;
}

Теперь предположим, что с помощью конструктора перемещения я хочу сохранить только одну копию largeArray между двумя объектами и используя копию я могу хранить отдельную копию целого числа a между теми же двумя объектами.

Этот вид сценария может возникнуть при кодировании.

Кто-нибудь может поделиться идеями по этому поводу?

1 ответ

Решение

Это работа для умного указателя:

class partialCopy {
   int a;
   std::shared_ptr<int, std::default_delete<int[]> > array;
};

Таким образом вам не нужно беспокоиться об этих вещах - сгенерированные по умолчанию специальные функции-члены сделают для вас правильную вещь.

Другие вопросы по тегам