A ver por como lo veo, tenes 2 posibilidades como vos mismo mencionaste, una es mantener una cuenta de todas las referencias o bien no permitiendo hacer copia del objeto o que el objeto no sea copiable (lease dejar privados los operadores de = y constructor copia)....
Otro approach que se me ocurre es usar un boost::shared_ptr guardando ahi los punteros a los nodos, entonces de esa forma compartis el objeto en el heap a travez de punteros a ese objeto Nodo XML desde tus objetos y los operadores de copia y de asignacion son seguros ya que se estaria copiando o haciendo copia de un boost::shared_ptr y por ende el mismo mantiene la cuenta de referencias sobre el Nodo XML... Saludos Pablo El 20 de agosto de 2008 22:41, Juan Alejandro Knight < [EMAIL PROTECTED]> escribió: > buenas a todos > tengo un problema con una clase que estoy haciendo para encapsular nodos > XML dentro de una clase > estamos usando el source de TinyXml > > mas alla de que recomienden usar otras herramientas, a lo que voy es que > tengo un problema de diseño > cada objeto deberia encapsular un nodo creado con new (debido a > implementacion del tiny) > por lo que el destructor deberia encargarse del delete sino hay memory leak > si sobrecargo el operator = y el constructor de copia para que cada uno > tenga un nodo hecho "new", tengo el problema de que puedo modificar copias y > no se modifica el contenido del nodo que realmente quiero modificar > > pense en una posibilidad que no se sobrecargue los operator= y CC y > manteniendo un contador de referencias, pero ahi el problema es que se > "rompe" el signature del constructor de copia posta > seria algo como > Class(Class &) > el const no va porque al hacer una copia incrementaria el numero de > referencias > esto asi no va > > lo unico que se me ocurre es poner como privados el op= y CC y viva la pepa > fuerzo a usar punteros > > que les parece? > ideas? alguien enchufado en la Matrix? > > saludos > PD: no estoy buscando cambiar de herramienta (tiny), simplemente hacer > funcionar lo que ya esta implementado > > > _______________________________________________ > Lista de correo Programacion. > [email protected] > http://listas.fi.uba.ar/mailman/listinfo/programacion > > -- Si yo tengo una manzana y tú tienes una manzana, luego de intercambiarlas ambos tenemos una manzana. Si yo tengo una idea y tú tienes una idea, luego de intercambiarlas ambos tenemos dos ideas. Apoyando a la comunidad Open Source. Facebook prifile: http://www.facebook.com/profile.php?id=1244601012 Orkut prifile: http://www.orkut.com/Profile.aspx?uid=12594853021246287134
_______________________________________________ Lista de correo Programacion. [email protected] http://listas.fi.uba.ar/mailman/listinfo/programacion
