visual tutorial studio microsoft español descargar community c++ c struct rationale

c++ - tutorial - visual studio windows 7



Estructura vacía en C vs estructura vacía en C++ (2)

¿Por qué la estructura vacía en C es una violación de restricción? ¿Por qué se cambia esta regla en C ++?

¿Hay alguna razón histórica?


Mi conjetura es esto:

En C, no hay herencia, plantillas y sobrecarga de funciones, tres razones principales por las que utilizamos estructuras vacías en C ++, como una interfaz base, como un parámetro de plantilla, como un tipo para ayudar a la resolución de sobrecarga.

¿Puedes pensar en algún uso real de una estructura vacía en C?


ya que no tiene herencia en C, no los necesita. Si solo desea tener un tipo de puntero distinguible, puede usar punteros para tipos incompletos.

struct opaque; struct opaque* stranger = 0;

debería funcionar bien