¿Hay alguna manera de destruir una estructura (no una clase)?¿Puedo destruir una estructura en C++?
Respuesta
En C++ un struct
es exactamente lo mismo que un class
a excepción de la visibilidad predeterminada en los miembros y bases. Entonces, si hay una forma de "destruir" una clase, puedes usar la misma manera para "destruir" una estructura.
lo tanto, si usted tiene un struct s { }
en su programa en C++ se puede hacer esto:
s *v = new s();
delete v; // will call structure's destructor.
O simplemente dejar que un objeto se salga del alcance llamará al destructor. –
@Martin: sí. cierto. –
@Martin: pero dejar caer un puntero de objeto fuera del alcance no lo hace. Es importante hacer la distinción. En este ejemplo, es un puntero. –
Excepto por el especificador de acceso predeterminado ("privado" para la clase, "público" para la estructura), todo lo demás es lo mismo en clase C++ y struct. Entonces, SÍ, puede escribir y usar destructores en struct de la misma manera que se hace en clase.
Las estructuras son idénticas a las clases, excepto que la visibilidad y la herencia predeterminadas son públicas (en lugar de privadas).
para que pueda crear y destruir estructuras como ésta (lo mismo que una clase, o incorporado en el tipo):
// Create on the heap, need to manually delete.
MyStruct *const pStruct = new MyStruct();
delete pStruct;
// Created on the stack, automatically deleted for you.
MyStruct struct;
Las estructuras y las clases son la misma cosa, sólo hay una diferencia técnica (la campo de acceso predeterminado) que ocurre debido a una diferencia conceptual entre los dos. Sin embargo, cada estructura como una clase llama a sus constructores cuando los objetos deben ser creados, y su destructor cuando termina su campo de visibilidad.
En C++ las estructuras no son menos poderosas que las clases.
- 1. ¿Cómo puedo destruir objetos COM en C#?
- 2. ¿Puedo 'extender' una estructura en C?
- 3. en C++, ¿puedo obtener una clase de una estructura
- 4. Destruir manualmente objetos C#
- 5. ¿Cómo puedo obtener la dirección de una estructura en C?
- 6. ¿puedo poner un selector Object-C en una estructura?
- 7. ¿Cómo puedo ocultar la declaración de una estructura en C?
- 8. Cómo destruir por completo una conexión de socket en C
- 9. Obligando a destruir algo pasado en C++
- 10. C estructura y C++ estructura
- 11. Estructura en una estructura
- 12. Estructura local en c
- 13. ¿hay alguna diferencia entre una estructura en C++ y una estructura en C#?
- 14. casting una estructura de C en otro
- 15. matrices multidimensionales en una estructura en C#
- 16. cómo inicializar una estructura estática en C++?
- 17. ¿Cómo vaciar/destruir una sesión en rieles?
- 18. Estructura vacía en C vs estructura vacía en C++
- 19. estructura Externo en C
- 20. C++ ¿cómo eliminar una estructura?
- 21. ¿Cómo asignar una estructura C en línea?
- 22. Inicializando una estructura global en C
- 23. Asignar una estructura a otra en C
- 24. cómo definir una estructura como en C
- 25. Vim autocompletar una estructura en C
- 26. ¿Qué es una estructura "empaquetada" en C?
- 27. Leyendo archivo en una estructura (C++)
- 28. Definir una estructura en C con Malloc
- 29. Reenviar declarar una estructura en Objective-C
- 30. estructura vacía en C
Pregunta aterradora, ¿cuál es la imagen más grande? En general, no lo hace en absoluto (es una variable automática) o llama a 'eliminar' en él (se asigna dinámicamente. Es mejor no tener que hacerlo explícitamente). En cualquier otro caso, las estructuras son clases. – GManNickG