2009-06-05 12 views
11

¿Podemos definir interfaces en C++ usando Visual Studio?¿Cómo puedo definir interfaces en C++/CLI administradas?

En caso afirmativo, ¿cuál sería un ejemplo de definición de interfaces en C++?

+0

Defina con más precisión lo que quiere decir –

+0

¿Desea crear interfaces que puedan implementarse en código administrado? o interfaces que serán utilizadas exclusivamente por C++? –

Respuesta

0

C++ no tiene un concepto de "interfaz" per se. Suelen emularse con clases abstractas con funciones virtuales puras. Además, class es generalmente sustituido con struct s, ya que el modificador de acceso predeterminado para ellos es public. Por lo tanto,

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

También, vea this.

+3

¿Qué pasa con la pérdida de memoria que está causando en la destrucción del objeto? Las clases base DEBEN tener un destructor virtual público o un destructor no virtual protegido. – TimW

+1

@ Anton Gogolev si tiene miembros virtuales, debe tener un destructor virtual – vidstige

16

En C++ administrado, esta es la sintaxis de una interfaz administrada.

using namespace System; 

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

Vale la pena señalar que la sintaxis de una propiedad es: 'property String^Name;' – Josh

Cuestiones relacionadas