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


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

"interface": интерфейс может иметь только общедоступные члены

Защищенные и закрытые члены могут быть доступны только из других функций-членов. Такие члены не используются в интерфейсе, так как они не могут предоставлять реализации для любого из его членов.

Следующий пример создаст C2862:

// C2862.cpp
// compile with: /c
#include <unknwn.h>

[object, uuid="60719E20-EF37-11D1-978D-0000F805D73B"]
__interface IMyInterface {
   HRESULT mf1(void);   // OK
protected:
   HRESULT mf2(int *b);   // C2862
private:
   HRESULT mf3(int *c);   // C2862
};