codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
// Ejemplo de unión con discriminador // 2009 Con Clase, Salvador Pozo #include <iostream> using namespace std; struct tipoLibro { int codigo; char autor[80]; char titulo[80]; char editorial[32]; int anno; }; struct tipoRevista { int codigo; char nombre[32]; int mes; int anno; }; struct tipoPelicula { int codigo; char titulo[80]; char director[80]; char productora[32]; int anno; }; enum eEjemplar { libro, revista, pelicula }; struct tipoEjemplar { eEjemplar tipo; union { tipoLibro l; tipoRevista r; tipoPelicula p; }; }; tipoEjemplar tabla[100]; int main() { tabla[0].tipo = libro; tabla[0].l.codigo = 3; strcpy(tabla[0].l.titulo, "El señor de los anillos"); strcpy(tabla[0].l.autor, "J.R.R. Tolkien"); tabla[0].l.anno = 1954; tabla[1].tipo = revista; tabla[1].r.codigo = 12; strcpy(tabla[1].r.nombre, "National Geographic"); tabla[1].r.mes = 11; tabla[1].r.anno = 2009; tabla[2].tipo = pelicula; tabla[2].p.codigo = 43; strcpy(tabla[2].p.titulo, "Blade Runner"); strcpy(tabla[2].p.director, "Ridley Scott"); strcpy(tabla[2].p.productora, "Warner Bros. Pictures"); tabla[2].l.anno = 1982; for(int i=0; i < 3; i++) { switch(tabla[i].tipo) { case libro: cout << "[" << tabla[i].l.codigo << "] Libro titulo: " << tabla[i].l.titulo << endl; break; case revista: cout << "[" << tabla[i].r.codigo << "] Revista nombre: " << tabla[i].r.nombre << endl; break; case pelicula: cout << "[" << tabla[i].p.codigo << "] Pelicula titulo: " << tabla[i].p.titulo << endl; break; } } return 0; }
Private
[
?
]
Run code
Submit