如何从IMyInterface <t>生成我的类实现?</t>

时间:2009-09-23 20:16:29

标签: c++-cli

我想将以下代码从c#移植到c ++ / cli:

class MyClass : IEnumerable<int> { ... }

我试过

class ref class MyClass : IEnumerable<int>

但它似乎没有起作用。

2 个答案:

答案 0 :(得分:1)

C ++有多种类型的继承。不要忘记指定它,例如:

ref class MyClass : public IEnumerable<int>
{ };

在C ++ / CLI中,我经常发现自己在接口实现中拼写出完整的命名空间。 E.g:

ref class MyClass :
    public MyCompany::MyProject::MyComponent::IMyInterface
{ };

如果您的类实际上没有实现提供的接口,您(当然)也会收到错误。并且您将要从类声明中删除^。您从接口继承,而不是从GC Handle继承到该接口的实例。

答案 1 :(得分:1)

假设您的代码正是您尝试编译的代码,那么您还需要额外的class。它应该只是ref class,而不是class ref class。另外,不要忘记将任何C#using语句翻译成C ++ using namespace,即:using namespace System::Collections::Generic