Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Enmanuel1227 en 16 Abril 2017, 17:04 pm



Título: Puntero a objetos c++
Publicado por: Enmanuel1227 en 16 Abril 2017, 17:04 pm
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.
(https://scontent-iad3-1.xx.fbcdn.net/v/t1.0-9/17862533_1627887573918631_8966542090595439098_n.jpg?oh=b52f2710fffe61544784bc52f319c641&oe=59895664)

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


Título: Re: Puntero a objetos c++
Publicado por: KaOs_NiGhT en 17 Abril 2017, 06:19 am
ya probaste declarandolo 'static'?
dejame un privado, te paso un buen libro de c++


Título: Re: Puntero a objetos c++
Publicado por: ivancea96 en 17 Abril 2017, 12:16 pm
En el código que enseñas hay varios problemas:

En el main, tienes:
Código
  1. 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 ._.


Título: Re: Puntero a objetos c++
Publicado por: Enmanuel1227 en 17 Abril 2017, 15:08 pm
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í


Título: Re: Puntero a objetos c++
Publicado por: MAFUS en 17 Abril 2017, 17:14 pm
¿Y  no tendría más sentido que sexo fuera un enum?