[C con Clase] Duda

Julian Salamanca thanatos.jsse en gmail.com
Lun Nov 15 19:51:15 CET 2010


Hola amigos C con Clase.

Primero que todo quiero agradecer a los creadores de C con Clase por ese
valioso aporte.
Tengo un duda que corresponde al tema de almacenamiento de clases en
archivos binarios; Sucede que tengo una clase llamada CA la cual contiene
atributos privados como variables de tipo int*, double*, char*, y otras
clases (como podría serlo CB), anteriormente pensaba que la forma de hacerlo
era usar la sentencia:

fstream archivo("Archivo.dat", ios::out | ios::binary | ios::trunc);
archivo.write(reinterpret_cast<char*>(&CA), sizeof(CA));

Pero me he encontrado con que los punteros (miembros de la clase) no pueden
ser almacenados por este método, es decir que en el caso de un double* lo
que almaceno en el archivo es la referencia (la dirección de memoria) mas no
el contenido (que es lo que me interesa).
He leído y he encontrado algo referente al tema de la serialización, pero no
logro entender como aplicar esta a mi problema.

En conclusión quiero almacenar clases que contienen punteros miembro a
valores y a otras clases, para luego poder recuperar esta información del
archivo para su uso en otro proceso.
Cualquier información me sera de utilidad.

De antemano muchas gracias por la ayuda.


Pd: La necesidad de almacenar clases surge de un proyecto en el que trabajo,
relacionado con redes neuronales y lógica difusa, donde los pesos sinapticos
de las conexiones entre las neuronas son tratados como conjuntos difusos, y
para poder ver el progreso en el tiempo de estas conexiones necesito
almacenarlas a medida que transcurre el proceso de entrenamiento de la red.

-- 
"las escalas son como el abecedario, nadie es poeta por decir a, b, c, d,
etc..." (Botafogo)
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20101115/b68dfdff/attachment.html>


Más información sobre la lista de distribución Cconclase