Div с фиксированной позицией ВСЕГДА отображается сверху?

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

До сих пор я видел два способа сделать это. Способ 1 - объявить метод закрытым и не дать ему реализации:

class Class {
//useful stuff, then
private:
    Class( const Class& ); //not implemented anywhere
    void operator=( const Class& ); //not implemented anywhere
};

Способ 2 - объявить метод закрытым и дать ему «пустую» реализацию:

class Class {
//useful stuff, then
private:
    Class( const Class& ) {}
    void operator=( const Class& ) {}
};

ИМО, первый вариант лучше - даже если есть ' по какой-то неожиданной причине, которая приводит к тому, что конструктор копирования вызывается из той же функции-члена класса, позже будет ошибка компоновщика. Во втором случае этот сценарий останется незамеченным до времени выполнения.

Есть ли серьезные недостатки в первом методе? Что может быть лучше и почему?

21
задан sharptooth 18 April 2011 в 11:22
поделиться