[Programación] RE: [Programación] RE: [Programació
n] Re: [Programación] Re: [Programación
] headers en c++ (Agregado)
Magnanego, Nestor
programacion@lugro.org.ar
Tue, 16 Nov 2004 06:37:13 -0300
> -----Mensaje original-----
> De: Magnanego, Nestor
> Enviado el: martes 16 de noviembre de 2004 6:20
> Para: 'programacion@lugro.org.ar'
> Asunto: [Programación] RE: [Programación] Re: [Programación] Re:
> [Programación] headers en c++
>
>
>
>
> > -----Mensaje original-----
> > De: HHDG [mailto:cuatriangulo@yahoo.com.ar]
> > Enviado el: lunes 15 de noviembre de 2004 22:17
> > Para: programacion@lugro.org.ar
> > Asunto: [Programación] Re: [Programación] Re: [Programación]
> > headers en
> > c++
> >
> >
> > Pablo wrote:
> > > Con C++ pasa lo mismo que con C, por CADA clase tenes que tener
> > > un archivo .h y un .cpp ( .C, .cxx o como te guste <le
> > hablo al compilador
> > > ;ˇ) > )
> > > En el .h pones la declaracion de la clase, y en el .cpp pones la
> > > implementacion de la clase. Y por ultimo, main.cpp usas la
> > > clase (o donde la necesites) Un ejemplo:
> > >
> > > Clase: Auto:
> > >
> > > auto.h:
> > > ------
> > > #include <stdio.h> // deberias usar iostream y cin cout........
> > >
> > > class Auto {
> > > public:
> > > Auto();
> > > ~Auto();
> > >
> > > void Arrancar();
> > > void Acelerar(int cuanto);
> > > };
> > >
> > > auto.cpp:
> > > --------
> > >
> > > Auto::Auto()
> > > {
> > > }
> > >
> > > Auto::~Auto()
> > > {
> > > }
> > >
> > > void Auto::Arrancar()
> > > {
> > > printf("Arranco\n");
> > > }
> > >
> > > void Auto::Acelerar(int cuanto)
> > > {
> > > printf("Acelerando %d\n", cuanto);
> > > }
> > >
> > > main.cpp:
> > > ---------
> > >
> > > #include "auto.h"
> > >
> > > int main()
> > > {
> > >
> > > Auto myAuto;
> > >
> > > myAuto.Arrancar();
> > > myAuto.Acelerar(40);
> > > myAuto.Acelerar(50);
> > >
> > > return 0;
> > > }
> > >
> > > Como creo que se ve, la idea es la misma que en C
> > > En el .h solo pones las declaraciones de tus funciones (clases) y
> > > en el .c ( .cpp ) pones las implementaciones de tus
> > > funciones (clases) y en el main.c (main.cpp) las usas.
> > >
> > > Saludos. Pablo.
> > >
> >
> > 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.
> Hola HHDD:
> Bueno estas en lo cierto, siguiendo el ejemplo, tenes que
> incluir auto.h en
> auto.cpp y también tenes que incluir auto.h en main.
> Saludos.
> Nestor.
Para compilarlo ( lo acabo de probar con g++ en Win) es asi:
g++ -o auto.o -c auto.cpp
g++ -o main.o -c main.cpp
g++ -o main main.o auto.o
y listo.
Saludos.
Nestor.