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


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

"function" : чистый описатель или абстрактный описатель переопределения не разрешен для функции друг

Функция указывается как чистая friend virtual.

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

// C2254.cpp
// compile with: /c
class A {
public:
   friend void func1() = 0;   // C2254, func1 is friend
   void virtual func2() = 0;   // OK, pure virtual
   friend void func3();   // OK, friend not virtual nor pure
};

void func1() {};
void func3() {};