| |||
Llamada desde el main ¿Como puedo llamar a CEmpleado *desSerializar(ifstream &fe);? se encuentra dentro CEmpleado que es una clase derivada de ficha, el problema lo tengo que cuando lo intento llamar desde el main no me deja, ¿alguna sugerencia? |
| |||
Respuesta: Llamada desde el main Mira te digo como lo tengo.... en CEmpleado: CEmpleado* CEmpleado::desSerializar(ifstream &fe) { char aux1[256], aux2[256]; CEmpleado *empleado = new CEmpleado; int i=12, j=0; int k=9, l=0; int m=6, n=0; &fe.getline(aux1, 256); while(aux1[k]!=EOF) { aux2[j]=aux1[l]; } empleado->SetNombre(aux2); &fe.getline(aux1, 256); while(aux1[i]!=EOF) { aux2[n]=aux1[m]; } empleado->SetEdad(atoi(aux2)); &fe.getline(aux1, 256); while(aux1[i]!=EOF) { aux2[j]=aux1[i]; } empleado->SetCategoria(aux2); CEmpleado *serializar= new CEmpleado(); return empleado; //si te da fallo prueba con return &empleado; } la llamada la hago asi CEmpleado *empleado = new CEmpleado; empleado->desSerializar(); pero no me funciona Última edición por javitotorrejon; 08/06/2011 a las 10:23 |
| |||
Respuesta: Llamada desde el main ok, sto ya me funciona muchisimas gracias!!!ahora me ha surgido otro problema, y es que cuando hago la llamada se me queda enganchado en el primer while en este, while(aux1[k]!=EOF) { aux2[j]=aux1[l]; } alguna sugerencia? |
| |||
Respuesta: Llamada desde el main Ya lo he conseguido! ahora el problema lo tengo en el return, que no me lo imprime bien, si visualizo el empleado antes de salir me lo imprimi sin problemas, pero en la funcion origen me mete valores basuras.... cuando hago la llamada aqui, tiene que ser algo del return, pero no se... void CEmpresa::redcopseguridad() { CEmpresa *empresa = new CEmpresa; ifstream fe("fichero.txt"); char aux1[256]; while (fe.getline(aux1,256)!=NULL) { if (aux1[1]=='s') { if (aux1[9]=='E') { CEmpleado *empleado = new CEmpleado; empleado->desSerializar(fe); empleado->Mostrar(); system ("pause"); }else { CCliente *cliente = new CCliente; cliente->desSerializar(fe); //cliente->Mostrar(); system ("pause"); } } } |
| |||
Respuesta: Llamada desde el main Deserializar no deberia retornar nada. Deberia modificar el porpio objeto que llama ese metodo. No entiendo porque dentro del motodo de un objetos creas un objeto de la misma clase. Fijate que el evento deserealizar crea un nuevo empleado lo devuelves con un return pero no lo tomas con una asignacion. Lo que deberias hacer es, no crear un objeto Empleado y en vez de usar empleado->SetEdad() usar this->SetEdad()....asi en todos los metodos. Deberias estudiar un pocos mas sobre porgramacion orientada a objetos. |
| |||
Respuesta: Llamada desde el main Si si, si lo que me dices ya lo tengo si te fijas, pero cuando hago redcopseguridad() me imprime valores basuras, no me imprime bien los datos. yo creo que es por el return empleado que no me lo hace bien, fijate el empleado->mostrar(); lo hace perfecto, pero al pasarlo es cuando no me imprime nada, por eso creo que es el return |
| |||
Respuesta: Llamada desde el main Muchas gracias a todos por vuestra paciencia, ya he conseguido que esto funcione, siento si he resultado un poco pesado, pero llevo poco tiempo en el mundo de C++ y me cuesta un poco ver ciertas cosas, y manejarme con cierta terminologia, pero lo consegui despues de darle muchas vueltas! |
Etiquetas: |