Dev - C++ - ¿Qué error es este?

 
Vista:

¿Qué error es este?

Publicado por blusky (6 intervenciones) el 07/08/2006 12:11:50
A ver si alguien me puede ayudar con el siguiente error en C++:
Tengo una clase A que contiene un elemento de la clase B y ésta, a su vez, otro de la clase C. Quiero grabar toda la informacion en un fichero y para ello hago una funcion Grabar en cada una de las clases. Por ello, en la funcion grabar de la clase A, despues de guardar los atributos de ésta, quiero llamar a la funcion GrabarB con el objeto de la clase B y desde ésta, despues, hacer lo mismo con el de la clase C. Ahi esta el problema. Declaro la funcion:
void GrabarA (ofstream &) y la implemento pero el compilador me arroja el error "variable or field Grabar declared void expected ; before token"
He trabajado poco con streams y por ello les pido ayuda por aca. ¿Como puedo pasar el stream de una funcion a otra para que los miembros de una clase se graben en el mismo fichero, pero a continuacion de los miembros de la clase anterior?. Espero haberme expresado con claridad.
Un saludo a todos y gracias adelantadas
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:¿Qué error es este?

Publicado por Inma (4 intervenciones) el 10/08/2006 09:46:58
Bueno no se me ha quedado excesivamente claro pero intentare ayudarte....

si tu declaras un funcion void Nombrefuncion ( <variables>) y dentro de la funcion pones algun return... pues te avisara que no puedes retornar nada de esa manera.
Creo que eso es lo que te pasa...

No seria mejor declararlo

ofstream & GrabarA ( void)

De todas maneras podrias dejar el programa por aqui y le echo un vistacito

Suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:¿Qué error es este?

Publicado por BluSky (6 intervenciones) el 10/08/2006 10:41:14
Hola inma. Vaya de antemano mi agradecimiento por tu ayuda. Te comento porq a lo mejor no me explique bien:
El problema esta en la llamada a una funcion Guardar de una clase, que tiene que recibir un stream. El programa, si quito totalmente lo referente a esta funcion funciona perfectamente.
Concretamente, la funcion guarda unos datos de un fichero que se ha abierto en otra clase por lo que debe (entiendo) recibir por parametros el stream.
Esta seria la declaracion en la clase:
void Guardar(ofstream &);
y la llamada :
ofstream Fichero("Fichero.dat", ios::out);
Dato.Guardar(Fichero)
El error que me da el DevC++ es en la linea de la declaración y el mensaje: "variable or field 'guardar' declared void"
y en la misma linea "expected ; before '(' token"
En la llamada me da el error "class ClasePelicula has no member named Guardar".
Estoy convencido de que el error viene por los parametros de la clase ofstream ya que si, por ejemplo, lo compilo con un parametro "int", el compilador lo acepta perfectamente-.
En resumen: ¿cómo demonios paso (y cojo) un objeto de la clase ofstream a una funcion?
Gracias y un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:¿Qué error es este?

Publicado por Inma (4 intervenciones) el 11/08/2006 11:59:18
Mnnn weno ya me diras algo del correo que te he enviado
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:¿Qué error es este?

Publicado por BluSky (6 intervenciones) el 11/08/2006 14:19:24
Cuidado inma, que si te fijas, en el correo pongo tierra en vez de terra pòr aquello del spam (lo llevo mu mal) asi que si no te has dado cuenta (lo mas probable) no me llegarás (lo que ya te confirmo). Si no es mucha molestia me lo puedes reenviar a la misma direccion pero de terra (sin la I).
Muchas gracias y perdona la molestia
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:¿Qué error es este?

Publicado por Cristóbal Ortiz Ortiz (9 intervenciones) el 13/10/2006 20:01:58
lo que te quiere decir es que se te olvido un ; en al gun lugar antes de donde te espesifico esta en ingles tienes que aprender :( eso se trata de los Scope resolution Rule ... Osea de las reglas de esto
{
{
asdlhasd
}

};

por ejemplo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar