2010-07-29 9 views

Respuesta

10

Son idénticos.

Para más detalles, ver MSDN's interface class referencia, bajo Observaciones:

interfaz struct es equivalente a interfaz de clase.


creo que Microsoft decidió permitir que ambas opciones sólo para mantener la coherencia con ref class/ref struct y value class/value struct. Sin embargo, dado que las interfaces no tienen miembros privados, para la interfaz, las dos declaraciones son exactamente las mismas.

+0

Ahora que lo sé, creo que la construcción redundante se introdujo porque los creadores de C++/cli tenían como objetivo reducir el número de palabras clave nuevas. Es por eso que han encontrado una solución llamada palabras clave sensibles al contexto. No pudieron introducir la palabra clave "interfaz" porque colisionaría con muchos códigos fuente ya escritos (por ejemplo, el nombre del tipo "interfaz"). Entonces probablemente decidieron conectarlo junto con la palabra clave class para crear un contexto, y con la palabra clave struct para ser consistente. –

1

No hay diferencia. Ellos son equivalentes.

Tenga en cuenta que en C++ "real" casi no hay diferencia entre estructura y clase, aparte de la accesibilidad predeterminada de los miembros. Entonces, en el universo paralelo de C++/CLI, donde las reglas de accesibilidad son diferentes de todos modos, no es una locura que sean equivalentes.

+0

¿Qué quieres decir con "(...) donde las reglas de accesibilidad son diferentes de todos modos"? ¿Cómo difieren? –

+0

Bueno, para empezar, tienes más opciones que en C++, ya que tienes cosas como 'protección pública' y 'protección privada', que no están presentes en C++ 'normal'. –

Cuestiones relacionadas