Título: lio con constructores y destructores Publicado por: Javincy en 8 Febrero 2012, 08:32 am Buenas a todos,
No me entero muy bien con el tema de sobrecarga de constructores en c++, a ver si me podeis dar un poco de claridad en el asunto. Al declarar un constructor para que reciba un parametro el compilador no me crea uno por defecto... por lo que lo creo yo para que me de servicio... ------------------------------------------------------- class caballo{ public: caballo(){} caballo (int edad){suEdad = edad;} ~caballo(){} private: int suEdad; }; ------------------------------------------------------- Si en el main creo un objeto caballo(12) utilizando el constructor con parametros todo funciona perfectamente. Si en el main creo un objeto caballo() sin parametros casca devolviendome "caballo()no es clase" Algo se me esta escapando...¿tengo que crear un destructor para cada constructor?¿la sintaxis? Gracias de antemano Título: Re: lio con constructores y destructores Publicado por: eleon en 8 Febrero 2012, 10:51 am Los constructores se pueden sobrecargar, es decir, puedes crear varios dentro de una misma clase teniendo todos el mismo nombre pero diferenciándose en el número o tipo de argumentos.
Lo que has hecho es correcto: Código
Citar Si en el main creo un objeto caballo() sin parametros casca devolviendome "caballo()no es clase" El compilador tomará el constructor "caballo(){}" como el de defecto, y por lo tanto para llamar a este no hay que poner "caballo objeto()" sino "caballo objeto" (sin paréntesis, ahi tu error). Citar Algo se me esta escapando...¿tengo que crear un destructor para cada constructor?¿la sintaxis? A diferencia de los constructores, los destructores no se pueden sobrecargar, se crea uno por clase sin argumentos ni valor de retorno y ese es el que hay para destruir todos los objetos. Te pongo un ejemplo para que veas cuándo se llama a cada cosa: Código
Aqui te lo dejo sin los mensajes para no liarte: Código
Saludos. Título: Re: lio con constructores y destructores Publicado por: Javincy en 8 Febrero 2012, 16:18 pm Muchas gracias por el empujon eleon, sin parentesis consigo crear el objeto sin problemas.
Gracias otra vez por la respuesta y un abrazote! |