编译器错误 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
};