¿El estándar de C++ dicta el diseño de compilación de la clase y la estructura? ¿Cómo se compilan de manera diferente, especialmente si están vacíos?¿Cómo se compila una clase vacía y una estructura vacía?
7
A
Respuesta
13
Lo hace de una manera, dice que tiene que asignar espacio para ello a menos que sea cierto cuando se usa como una clase base (conocida como Optimización de clase base vacía). Esto es para garantizar que diferentes objetos tengan diferentes direcciones.
Se compilan de la misma manera dado que struct
y class
son lo mismo, excepto el especificador de acceso predeterminado. En C++ 11 se introduce la noción de diseño estándar clases/estructuras, y garantiza que el diseño de la memoria para clases vacías sea el mismo.
Cuestiones relacionadas
- 1. Estructura vacía en C vs estructura vacía en C++
- 2. estructura vacía en C
- 3. Cómo crear una clase vacía en F #
- 4. ¿Es malo declarar una clase vacía?
- 5. Ventajas de una clase vacía en C++
- 6. optimización clase base vacía
- 7. Anidado clase vacía
- 8. una matriz vacía
- 9. crear una rama vacía
- 10. ?? ¿Se unen para una cadena vacía?
- 11. ¿Cómo crear una carpeta vacía en java?
- 12. pitón objeto de clase vacía
- 13. DropDownList con LinqDataSource y una opción vacía
- 14. optimización de clase base vacía
- 15. StreamReader.ReadToEnd() devuelve una cadena vacía
- 16. Fijación de una matriz vacía
- 17. ¿Cómo crear una imagen vacía (0x0)?
- 18. verificación si una variable vacía
- 19. node.js: ¿Cómo detectar una secuencia stdin vacía?
- 20. JSON y matriz vacía
- 21. ¿Cómo deserializar una matriz/lista vacía?
- 22. Creando una lista vacía en Racket
- 23. F # cómo escribir una declaración vacía
- 24. ¿Cómo creo una matriz vacía en YAML?
- 25. inútil especificador de almacenamiento de clase en una declaración vacía
- 26. Servidor SQL: cambiar una cadena vacía a una cadena vacía en la declaración de selección
- 27. ¿Por qué IJavaProject.findPackageFragmentRoots devuelve una matriz vacía?
- 28. ¿Cómo hacer una prueba para una colección generic.dictionary vacía?
- 29. Clase interna anónima vacía en java
- 30. ¿Por qué Html.BeginForm genera una acción vacía?
Absolutelu "no" en ambos casos a la primera pregunta. Una clase tiene un puntero "this" implícito en respuesta a la segunda pregunta. – paulsm4
@ paulsm4: su respuesta a la segunda pregunta es incorrecta. no hay ninguna diferencia entre una "clase" y una "estructura" en este sentido. A saber, una 'struct' puede tener miembros' virtuales'. –
Las clases y las estructuras son exactamente lo mismo, la única diferencia es con la especificación de acceso predeterminada (para miembros y bases). – GManNickG