C++/CLI:如何在C+中声明抽象(在C#中)类和方法+/CLI?

C++/CLI:如何在C+中声明抽象(在C#中)类和方法+/CLI?,c#,c++-cli,abstract-class,declaration,abstract-methods,C#,C++ Cli,Abstract Class,Declaration,Abstract Methods,在C++/CLI中,以下C#代码的等价物是什么 public abstract class SomeClass { public abstract String SomeMethod(); } 您使用摘要: public ref class SomeClass abstract { public: virtual System::String^ SomeMethod() = 0; } 只要把关键字稍微混合一下,就可以得到正确的语法。抽象在C#中位于前面,但在C

在C++/CLI中,以下C#代码的等价物是什么

public abstract class SomeClass
{
    public abstract String SomeMethod();
}

您使用
摘要

public ref class SomeClass abstract
{
    public:
        virtual System::String^ SomeMethod() = 0;
}

只要把关键字稍微混合一下,就可以得到正确的语法。抽象在C#中位于前面,但在C++/CLI中位于末尾。与override关键字相同,C++11兼容的编译器今天也能识别该关键字,它们希望在函数声明的末尾使用它。类似于<代码>=0 < /COD>在传统C++中标记函数摘要:

public ref class SomeClass abstract {
public:
  virtual String^ SomeMethod() abstract;
};

声明“SomeMethod()=0”和“SomeMethod()抽象”之间有什么区别吗?没有。方法()=0是定义抽象类的非C++/CLI(只是标准C++)方式。使用C++/CLI,您可以使用它,也可以使用新的抽象关键字。我更喜欢使用原始的,因为这只是一种习惯,对于方法来说,abstract关键字是上下文敏感的,但两者都可以。参见:“SeMeMeod()= 0”和“SOMMEDODE()”抽象有区别吗?NO.= 0是C++语法,而C++ +CLI也支持它。