Quel est l'équivalent du code C# suivant en C++/CLI?C++/CLI: Comment déclarer une classe et une méthode abstraites (en C#) en C++/CLI?
public abstract class SomeClass
{
public abstract String SomeMethod();
}
Quel est l'équivalent du code C# suivant en C++/CLI?C++/CLI: Comment déclarer une classe et une méthode abstraites (en C#) en C++/CLI?
public abstract class SomeClass
{
public abstract String SomeMethod();
}
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;
};
Vous utilisez abstract
:
public ref class SomeClass abstract
{
public:
virtual System::String^ SomeMethod() = 0;
}
est-il une différence entre la déclaration "SomeMethod() = 0" et "SomeMethod() abstraite"? – Lopper
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 –
@Reed Copsey: Merci! – Lopper
Y a-t-il une différence entre déclarer "SomeMethod() = 0" et "SomeMethod() abstract"? – Lopper
N ° = 0 est la syntaxe C++ mais C++/CLI la prend également en charge. –
@nobugz: Merci! – Lopper