C ++ / CLI: Как объявить абстрактный (в C #) класс и метод в C ++ / CLI? - PullRequest
10 голосов
/ 05 декабря 2009

Что эквивалентно следующему коду C # в C ++ / CLI?

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

Ответы [ 2 ]

20 голосов
/ 05 декабря 2009

Просто немного перепутайте ключевые слова, чтобы получить правильный синтаксис. abstract идет впереди в C #, но в конце в C ++ / CLI. То же самое, что и ключевое слово override , также признанное сегодня компиляторами, совместимыми с C ++ 11, которые ожидают его на end объявления функции. Как = 0 делает в традиционном C ++ для пометки абстрактной функции:

public ref class SomeClass abstract {
public:
  virtual String^ SomeMethod() abstract;
};
7 голосов
/ 05 декабря 2009

Вы используете abstract:

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