接口成员为什么不能使用私有类类型?

问题描述:

考虑下面的代码:接口成员为什么不能使用私有类类型?

ref class ClassA 
{ 

}; 

interface class IClassA 
{ 
    void DoSomething(ClassA^ a); 
}; 

编译此代码与Visual C++ 11开发者预览版产生以下错误:

error C3981: 'IClassA::DoSomething' cannot be emitted into metadata 

如果ClassA是公开的,代码编译没有错误。为什么代码不能编译,如果ClassA是非公开的?

这是Visual Studio 11 Developer Preview中C++编译器中的一个错误。

该错误已修复,代码使用Visual Studio 11 Beta编译时没有错误。