Есть ли частичный конструктор копирования в 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;
};
Таким образом вам не нужно беспокоиться об этих вещах - сгенерированные по умолчанию специальные функции-члены сделают для вас правильную вещь.