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

0

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

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

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

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

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

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

  • 1
    Это было бы неверно, вам нужно было бы использовать указатель, а не массив, чтобы это работало.
  • 1
    Смотрите std::shared_ptr
Показать ещё 2 комментария
Теги:
copy-constructor
move-constructor

1 ответ

5
Лучший ответ

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

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню