2009-06-05 7 views
11

Pouvons-nous définir des interfaces en C++ à l'aide de Visual Studio? Si oui, quel serait un exemple de définition d'interfaces en C++?Comment définir des interfaces dans C++/CLI gérés

+0

Veuillez définir plus précisément ce que vous voulez dire –

+0

Voulez-vous créer des interfaces qui peuvent être implémentées dans du code managé? ou des interfaces qui seront utilisées exclusivement par C++? –

Répondre

0

C++ n'a pas de concept d '"interface" en soi. Ils sont généralement émulés avec des classes abstraites avec des fonctions virtuelles pures. En outre, class es sont généralement remplacés par struct s, puisque le modificateur d'accès par défaut pour ceux-ci est public. Par conséquent,

struct IFoo 
{ 
    virtual void Bar() = 0; 
} 

Voir aussi this.

+3

Qu'en est-il de la fuite de mémoire que vous causez à la destruction de l'objet! Les classes de base DOIVENT avoir un destructeur virtuel public ou un destructeur non virtuel protégé. – TimW

+1

@Anton Gogolev si vous avez des membres virtuels, vous devriez avoir un destructeur virtuel – vidstige

16

Dans C++ géré, il s'agit de la syntaxe d'une interface gérée.

using namespace System; 

interface class IFoo 
{ 
    String^ GetName(); 
}; 
+1

Il est intéressant de noter que la syntaxe d'une propriété est: 'property String^Name;' – Josh

Questions connexes