Re[2]: Любопытно,наверно,такая конструкция будет работать внутри наследованного
От: johny5 Новая Зеландия
Дата: 07.11.15 12:39
Оценка:
<>
Re[2]: Их писать не нужно
От: _hum_ Беларусь  
Дата: 07.11.15 18:16
Оценка:
Здравствуйте, johny5, Вы писали:


J>На самом деле их писать не нужно — только ошибок понаделаете и отключите заодно генерацию move конструкторов.

J>Члены класса должны сами знать как себя копировать. Тогда автоматически сгенерированные конструкторы окажутся подходящими.

J>Перегружать копирование редко нужно только для утилитарных классов типа shared_ptr.


J>--


J>Если совсем никак не обойтись, можно покурить такую тему (C++11):

J>
J>class Copy
J>{
J>public:
J>  Copy() {}

J>  Copy(const Copy& it) : Copy()
J>  {
J>    *this = it;

J>    .. add here your specific 'copy adjust' code ..
J>  }

J>protected:
J>  void operator=(const other& it) = default;
J>


это почти что нужно, за исключение одного НО — как в вашем варианте определить еще и свой оператор присваивания (ведь если задача требует определения своего конструктора копирования, то нельзя оставлять "нэйтивный" оператор присваивания)?
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.