Есть ли способ реализовать конструктор копирования в C++, который только копирует некоторые конкретные члены и реализует перемещение для других членов.
Например, у меня есть класс
class partialCopy
{
int a;
int largeArray[1000] ;
}
Теперь предположим, что с помощью конструктора move я хочу сохранить только одну копию largeArray
между двумя объектами и используя копию, я могу сохранить отдельную копию целого числа a между двумя одинаковыми объектами.
Такой тип сценария может возникать при кодировании.
Может ли кто-нибудь поделиться идеями об этом?
Это работа для умного указателя:
class partialCopy {
int a;
std::shared_ptr<int, std::default_delete<int[]> > array;
};
Таким образом, вам не нужно беспокоиться об этих вещах - по умолчанию созданные специальные функции-члены будут делать правильные вещи для вас.
std::shared_ptr