Поделиться через


Ошибка компилятора C2600

'функция' : невозможно определить особую функцию-член, созданную компилятором (сначала требуется объявить ее в классе)

Перед определением функций-членов, таких как конструкторы или деструкторы, для класса они должны быть объявлены в этом классе. Компилятор может создать конструкторы и деструкторы по умолчанию (особые функции-члены), если они не объявлены в классе. Если же определить одну из этих функций без соответствующего объявления в классе, то компилятор обнаружит конфликт.

Чтобы устранить эту ошибку нужно в объявлении класса объявить каждую функцию-член, которая определена вне объявления класса.

Следующий пример приводит к возникновению ошибки C2600:

// C2600.cpp
// compile with: /c
class C {};
C::~C() {}   // C2600

class D {
   D::~D();
};

D::~D() {}