Buenos días, me encuentro realizando una actividad de estructura de datos, donde necesito anidar 3 estructuras dentro de una union pero a la hora de querer ingresar datos me tira un error.
#include <iostream>
using namespace std;
const int n=50;
struct autos
{
string nom;
string dir;
float mon;
float men;
float ded;
int lic;
string edo;
string mod;
int año;
///Constructor
autos(){
nom="0";
dir="0",
mon=0;
men=0;
ded=0;
lic=0;
edo="0";
mod="0";
año=0;
}
};
struct casa
{
string nom;
string dir;
float mon;
float men;
float ded;
int ant;
bool seg;
///Constructor
casa(){
nom="0";
dir="0";
mon=0;
men=0;
ded=0;
ant=0;
seg=false;
}
};
struct vida
{
string nom;
string dir;
float mon;
float men;
///Constructor
vida(){
nom="0";
dir="0";
mon=0;
men=0;
}
};
union polizas
{
struct autos;
struct casa;
struct vida;
};
polizas pol[n];
int insertar(int tipo,int ind);
int main()
{
int ind=0;
ind=insertar(1,ind);
}
int insertar(int tipo,int ind)
{
if(tipo==1){
cout<<"Seguro de auto"<<endl;
cout<<"Ingrese su nombre"<<endl;
pol[ind].autos.autos(ind);
}
ind++;
return ind;
}
Como tendría que manejar la union en este caso?
ni idea pero yo necesito realizar un programa en Dev++ que sea tipo test de conocimiento donde se realicen 5 preguntas todas con opcion multiple de respuesta es decir a,b o c y que te de un punto por cada respuesta correcta y al final te diga si eres culto, poco culto o ignorante necesito ayudaaaaaaa
Cita de: Yeralb en 13 Septiembre 2017, 18:00 PM
ni idea pero yo necesito realizar un programa en Dev++ que sea tipo test de conocimiento donde se realicen 5 preguntas todas con opcion multiple de respuesta es decir a,b o c y que te de un punto por cada respuesta correcta y al final te diga si eres culto, poco culto o ignorante necesito ayudaaaaaaa
Si quieres ayuda con alguna duda concreta, haz un tema, pero no respondas a otros.
Las uniones son algo complicadas cuando las utilizas con clases. Tienes string dentro de la union. string tiene un constructor y un destructor, además de almacenar datos fuera de la union.
En fin, no me voy a liar: trata de usar de momento solo tipos nativos y punteros en las union.
Mezclas C y C++, además de que confundes tipo con variable.
En tu union dices:
union polizas
{
struct autos;
...
};
Las uniones, al declararlas necesitan indicar qué nombres tomaran las variables que habrá dentro. 'struct autos' solo es un tipo de dato, falta el nombre de la variable.
Después usas mal una función. Tu dices:
pol[ind].autos.autos(ind);
Pasas a la función autos un argumento cuándo aquí
struct autos
{
...
autos(){
...
}
no hay argumento y no se puede inferir.