2009-12-05 11 views

Répondre

15

Il suffit de mélanger les mots-clés un peu pour arriver à la syntaxe correcte. abstract va au front en C# mais à la fin en C++/CLI. Identique à la override mot-clé, a également reconnu aujourd'hui par 11 compilateurs compatibles C + qui attendent à la fin de la déclaration de fonction. Comme = 0 qu'en C++ traditionnel pour marquer un résumé de fonction:

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

Y a-t-il une différence entre déclarer "SomeMethod() = 0" et "SomeMethod() abstract"? – Lopper

+1

N ° = 0 est la syntaxe C++ mais C++/CLI la prend également en charge. –

+0

@nobugz: Merci! – Lopper

6

Vous utilisez abstract:

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

est-il une différence entre la déclaration "SomeMethod() = 0" et "SomeMethod() abstraite"? – Lopper

+0

Non. La méthode() = 0 est la façon de définir une classe abstraite non-C++/CLI (juste stnadard C++). Avec C++/CLI, vous pouvez l'utiliser, ou le nouveau mot-clé abstract. Je préfère utiliser l'original, puisque c'est juste une habitude, et le mot-clé abstract est contextuel dans le cas d'une méthode, mais ça marche. Voir: http://msdn.microsoft.com/en-us/library/b0z6b513(VS.80).aspx –

+0

@Reed Copsey: Merci! – Lopper