Puntero a objetos c++

Iniciado por Enmanuel1227, 16 Abril 2017, 17:04 PM

0 Miembros y 1 Visitante están viendo este tema.

Enmanuel1227

Hola, quisiera que me ayudaran con lo siguiente, investigue un poco por internet pero no encuentro lo que necesito, adjunto una imagen para ser mas claro.


la cuestion tengo que hacer un programa con 2 clases una se llama estudiante y otra se llama sexo, en la clase sexo se almacenara un idsexo en el cual por el constructor le paso 2 por defecto que es f para femenino y m para masculino, pero tiene un método para agregar un sexo nuevo por ejemplo el sexo p, la función de la clase sexo es que cuando se ingresen datos en la clase estudiante al momento de ingresar el sexo verificar que este sexo existe en el idsexo de la clase sexo, aquí es donde viene el problema en el método comparar que pertenece a la clase estudiante al momento de crear el objeto se me crea una nueva instancia de la clase con los datos del constructor y no puedo acceder a los datos del objeto que tengo en el main, así que eso es lo que quiero saber como ingresar desde el metodo comparar a los datos almacenados en el atributo idsexo pero instanciado desde el main

KaOs_NiGhT

ya probaste declarandolo 'static'?
dejame un privado, te paso un buen libro de c++

ivancea96

En el código que enseñas hay varios problemas:

En el main, tienes:
Código (cpp) [Seleccionar]
oEst[1] = new Sexo();
oEst[1] es un puntero a estudiante, así que no le puedes asignar un objeto de tipo Sexo (salvo que Sexo sea una clase hija de Estudiante, cosa que dudo, y que no viene al caso)

En Estudiante::Comparar:
Tienes la variable oSexo a la que nunca le asignas memoria con new Sexo(). En el for, estás llamando a oSexo->getTamano(). El objeto no existe, así que no puedes hacer eso. Tendrás que asignarle memoria si lo quieres usar.

De todos modos, veo que la captura la sacaste hace 1 semana ._.

Enmanuel1227

Sexo es una clase hija de estudiante, por cuestiones de facilidad estoy usando clases virtuales y en el método comparar tengo un puntero porque yo estaba intentando hacerlo y si tenia la asignación de memoria solo que comencé a borrar para cambiarlo pero lo deje así

MAFUS

¿Y  no tendría más sentido que sexo fuera un enum?