tipo que palabras las ejemplos consisten conjuntos c++ methods unions

que - union de palabras en c++



C++: ¿Uniones con métodos? (2)

¿Hay algo malo en que una unión tenga uno o más métodos? ¿O cualquier cosa a tener en cuenta? (Puedo ver que los constructores / destructores son problemáticos por razones esquizofrénicas)


¿Cómo podrías implementar tal cosa? Aquí hay un indicador de una unión, espero que no te importe que no tienes idea de qué variables son seguras de usar y cuáles no.

De todos modos, los sindicatos son una función de lenguaje muerto, han sido totalmente superados por métodos basados ​​en bibliotecas como boost :: variant o boost :: any. Algo así como las macros void * y funcionales: rara vez son útiles en C ++ en comparación con otras opciones.


De los estándares C ++ 03 & C ++ 0x (Draft N3092):

9.5 uniones
Una unión puede tener funciones miembro (incluidos constructores y destructores) , pero no funciones virtuales (10.3) . Un sindicato no tendrá clases de base. Una unión no debe ser usada como una clase base.

Inicializar la unión usando la sintaxis del inicializador agregado ( U u = { 42 }; ) o establecer un miembro después ( U u; ui = 42; ) no es "problemático". Y tampoco lo está inicializando usando un constructor ( U u( 42 ); ).
La única "captura" es que no puede usar la sintaxis de inicialización agregada para una unión que tenga un constructor definido por el usuario.