Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Problema con punteros

Estas en el tema de Problema con punteros en el foro de C/C++ en Foros del Web. Hola a todos. Tengo un problema con un pequeño proyecto independiente que estoy haciendo. La cuestion es la siguiente, cree una jerarquia de objetos similar ...
  #1 (permalink)  
Antiguo 28/01/2012, 12:44
 
Fecha de Ingreso: enero-2012
Ubicación: en mi casa
Mensajes: 1
Antigüedad: 12 años, 9 meses
Puntos: 0
Pregunta Problema con punteros

Hola a todos.
Tengo un problema con un pequeño proyecto independiente que estoy haciendo. La cuestion es la siguiente, cree una jerarquia de objetos similar a la de Java donde existe una clase base Object del cual derivan las demas clases. Existe ademas una clase que llame Reference y que contiene solo un puntero a Object, a grandes rasgos es asi:

Código:
class Reference{
    public:
        Object *value;
        ....
};
Las instancias de Reference pueden apuntar al mismo Object, por lo que contienen la misma direccion para value. Bueno, lo que quiero es simular el aliasing de C++, asi cuando una referencia cambia el value, entonces las demas referencias que comparten ese value esten al tando de esa modificacion.
Probe con algo asi:

Código:
Reference *a = new Reference(algun objeto);
Reference *b = new Reference(a->value);    // a y b contienen al mismo objeto
Object *o = algún objeto
*(a->value) = *o;    // Ambos, a y b mantiene su mismo valor, no se producen cambios
a->value = o;    // Aquí solo a cambia su valor y b no se altera
Lo que debería pasar es que cuando a cambie su value, b debería tener instantáneamente ese valor nuevo.
  #2 (permalink)  
Antiguo 29/01/2012, 17:24
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años, 6 meses
Puntos: 344
Respuesta: Problema con punteros

Tendrías que poner como pasas el valor del constructor para ver si estás haciendo correctamente la asignación del valor.

Etiquetas: clase, punteros
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:07.