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

Lop*_*per 10 c# abstract-class c++-cli declaration abstract-methods

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

public abstract class SomeClass
{
    public abstract String SomeMethod();
}
Run Code Online (Sandbox Code Playgroud)

Han*_*ant 20

只需稍微混淆关键字即可获得正确的语法. abstract在C#的前面,但在C++/CLI的最后.与override关键字相同,今天也被C++ 11兼容的编译器认可,它们在函数声明的末尾期望它.就像= 0在传统的C++中标记一个函数抽象一样:

public ref class SomeClass abstract {
public:
  virtual String^ SomeMethod() abstract;
};
Run Code Online (Sandbox Code Playgroud)

  • 声明"SomeMethod()= 0"和"SomeMethod()abstract"之间有什么区别吗? (4认同)
  • No. = 0是C++语法,但C++/CLI也支持它. (2认同)

Ree*_*sey 7

你用abstract:

public ref class SomeClass abstract
{
    public:
        virtual System::String^ SomeMethod() = 0;
}
Run Code Online (Sandbox Code Playgroud)