Ayuda para un novato con el uso de punteros

vicpin_mm
20 de Noviembre del 2009
Hola, estoy empezando con esto del C++ y tengo un problema que no consigo resolver.
Tengo tres clases, una clase Lugar con varios campos(con campos me refieros a miembros privados) string que contienen informacion del lugar, una clase carretera, que tiene entre otros campos, un puntero de tipo Lugar* destino, y una clase diccionario de carreteras, que tiene un campo que es un vector de tipo carretera. Hasta ay todo bien. El problema me surge cuando voy a insertar una carretera en el vector de carreteras de la clase diccionario. Desde el main hago lo siguiente:
Lugar l;
l.insertaNombre("Madrid");
carretera c;
Ahora a la carretera c le quiero introducir el lugar destino creado, como el tipo carretera lo que tiene es un puntero a Lugar, le paso la direccion del lugar l:
c.insertaDestino(&l);
Hasta aqui todo bien, pero ahora hago la inserccion en el diccionario:
diccionario d;
d.insertaCarretera(c);
en la clase diccionario, el metodo insertarCarretera hace: vector[x] = c; recuerdo que vector es un vector de carreteras, y quiero introducir la carretera creada en el vector. Cuando hago esta operacion, el miembro Lugar* de la clase carretera no se copia correctamente en el vector, lo que se se copia es la direccion de memoria, pero los campos asociados a Lugar de la carretera original c(como el nombre del Lugar, que era Madrid), no se copia, y en el depurador, donde t muestra las variables de vector[x], en el campo Lugar, si lo despliegas para ver los miembros asociados a lugar, pone Error.
Resumiento, necesito saber como copiar en el vector una carretera y que los miembros asociados al miembro Lugar* de la clase carretera se mantengan, en lugar de copiarse solo la direccion de memoria sin mantener los miembros del tipo Lugar. Espero no haberos hecho un lio, me he explicado lo mejor que he podido. Cualquier ayuda os lo agredecere enormemente!!