[Programación] Re: [Programación] Re: [Programació
n] Re: [Programación] Re: [Programa
ción] headers en c++
HHDG
programacion@lugro.org.ar
Tue, 16 Nov 2004 11:13:16 -0300
Horacio Castellini wrote:
> --- HHDG <cuatriangulo@yahoo.com.ar> escribió:
>
>>Gracias por la respuesta y el ejemplo,
>>Ahora es más fácil preguntar, el tema es que
>>auto.cpp
>>NO va a compilar, simplemente porque no tiene
>>definida
>>la clase Auto (observar que auto.cpp no incluye a
>>auto.h)
>>y Esa es exactamente mi pregunta.
>
>
>
> Eso cae de maduro... que debés colocar auto.h en
> auto.cpp y main.cpp para que compile... cualquier
> conocedor de C se daría cuenta... el C++ es el C con
> definición de clases y POO (más otras cosas técnicas
> que no vienen al caso)
Efectivamente, por eso lo puse como referencia en la respuesta.
En realidad me pareció bastante obvio, pero recien me estoy animando
en c++, hasta ahora había hecho todo en un archivo y voy a explicar el
problema por el cual hice la pregunta justamente para NO adivinar pasos
en la migración C a C++. De paso ya queda en la lista.
Al separar las definiciones en un .h y la implementacion en un .cpp
las funciones con argumentos por default me trajeron problemas.
Antes de separar yo tenía
en la declaración..
void Acelerar(int cuanto);
....
En la implementación
void Acelerar(int cuanto=58);
....
Cuando separé eso en dos archivos, dejó de funcionar inmediatamente.
Quizás si hubiera probado combinaciones, habría hallado la solución
pero como uno siempre confía en lo que ya está funcionando, no me
pareció muy intuitivo invertir los prototipos, pero finalmente esa
fué la solución
en el .h deben ir los parametros por default:
void Acelerar(int cuanto=20);
y en la implementación, nada
void Acelerar(int cuanto);
Solucionado el problema, agradezco las respuestas de todos
incluidos los refunfuños de Horacio ;)
Saludos.