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

no consigo guardar una cadena en una clase :(

Estas en el tema de no consigo guardar una cadena en una clase :( en el foro de C/C++ en Foros del Web. hola, he creado una clase donde guardo un nombre para despues consultarlo. class palabra { .. void palabra::SetNombre(char *nombre) { strcpy(QueNombre,nombre); } y otra función ...
  #1 (permalink)  
Antiguo 20/05/2008, 08:45
 
Fecha de Ingreso: febrero-2006
Mensajes: 233
Antigüedad: 18 años, 2 meses
Puntos: 3
no consigo guardar una cadena en una clase :(

hola, he creado una clase donde guardo un nombre para despues consultarlo.

class palabra
{
..
void palabra::SetNombre(char *nombre)
{
strcpy(QueNombre,nombre);
}

y otra función donde consulto el nombre:

char* palabra::GetNombre()
{
return QueNombre;
}
}

en el main hago esto y todo bien:

palabra *palabras;
palabras = new palabra[10]; //tengo que memorizar 10nombres
palabras[0].SetNombre("Pedro"); //Introducimos primer nombre
cout<<"Primer Nombre: " <<palabras[0].GetNombre<<endl; //Primer Nombre: Pedro

despues desde el mismo main llamo a otra función que está definida más arriba:
lecturaNombres();

void lecturaNombres()
{
palabra *palabras; //sino no me deja: "not defined.."
cout<<"Primer Nombre: " <<palabras[0].GetNombre<<endl; //Primer Nombre:
}

Acá está el problema!!!!!! no me lo guarda!
¿que me falta para guardarlo en global? ¿que estoy haciendo mal?
en el main ok, pero al consultar un nombre desde otra función no me saca nada por pantalla.
AYUDA Y GRACIAS!
  #2 (permalink)  
Antiguo 20/05/2008, 10:27
Avatar de _Lucifer_  
Fecha de Ingreso: junio-2006
Mensajes: 1.662
Antigüedad: 17 años, 10 meses
Puntos: 28
Respuesta: no consigo guardar una cadena en una clase :(

Creo que el problema es que "palabra *palabras;" esta dentro del main, lo cual lo convierte en una variable local del cuerpo principal, cuando invocas a "lecturaNombres();" esta función "no ve" la variable, por eso te dice que debes declararla de nuevo y eso.

Tienes dos soluciones, o declaras el puntero como global, es decir, fuera del main, antes de los prototipos de las funciones o sus definiciones, la segunda es que le pases el puntero a las funciones como uno de sus argumentos.

Saludos
__________________
Si crees que no tiene sentido, etonces probablemente lo tenga... :arriba:
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 10:49.