Имеет ли значение тип возвращаемого значения «operator =», если я хочу сделать класс не копируемым?

Предположим, у меня есть класс, который не поддерживает поэлементное копирование, поэтому я не хочу сохранять реализованные компилятором конструктор копирования и оператор присваивания. Я также не хочу их реализовывать, потому что либо

  1. это требует дополнительных усилий, и мне не нужны эти операции в моем классе, либо
  2. эти операции не будут иметь смысла в моем классе

, поэтому я хочу запретить их. Для этого я объявлю их частными и не предоставлю никакой реализации :

class NonCopyable {
private:
   NonCopyable( const NonCopyable& ); //not implemented anywhere
   void operator=( const NonCopyable& ); //not implemented anywhere
};

Теперь я могу выбрать любой тип возвращаемого значения для функции-члена operator = () . Будет ли иметь значение, какой тип возврата я выберу?

5
задан Community 23 May 2017 в 11:48
поделиться