Fecha y hora actual: Sab 19 May, 2012 20:34 pm
Índice del Foro

Foros de programación informática, diseño gráfico y Web

En esta comunidad intentaremos dar soporte de programación a todos los niveles, desde principiantes a profesionales de la informática, desarrollo de programas, programación web y mucho más.

Clases y sus implementaciones

Responder al Tema

Índice del Foro > C, C#, Visual C++ > Clases y sus implementaciones

Autor Mensaje
Darkside-tk2
Usuario Activo


Registrado: 30 May 2011
Mensajes: 214
Ubicación: Portoviejo - Manabí - Ecuador

Mensaje Publicado: Mar 20 Dic, 2011 01:33 am

Título del mensaje: Clases y sus implementaciones

Responder citando

Ultimamente tuve que descargarme el VisualStudio Express 2008

por que no me corrían las clases déjenme explicaros estoy siguiendo un tuto muy bueno sobre clases pero me quedo en esto y a lo mejor es algo que yo creo que esta mal echo....

Tenemos 3 archivos verdad;

Practicing.cpp <- Este es el main;
cat.hpp <- Aqui estan las clases.
cat.cpp <- aqui las implementaciones.

entonces en el WxDevC++ me iba bien no me gustan mucho los "projectos"
Veamos un poco el codigo si:

En el Practicing.cpp:
Código:


#include <iostream>

#include "cat.hpp"

//Espacio de nombres std;
using namespace std;


int main()
{
   
    cat Mcat;

    cin.get();
    return 0;
}


En el cat.hpp va asi:
Código:


#ifndef CAT_HPP
#define CAT_HPP

class cat
{

public:

    cat(void);
    ~cat(void);

};

#endif



y en el cat.cpp va asi:
Código:


#include <iostream>
#include "cat.hpp"

using namespace std;

cat::cat(void)
{
    cout << "constructing cat";
}


cat::~cat(void)
{
   
   
   
}



Bien al compilar el Practicing.cpp en my querido WxDevC++ me da linker error a todas las clases.

Tambien puedo hacer es poner las clases y sus implementaciones en cat.hpp, o simplemente en vez de incluir a cat.hpp en el Practicing.cpp
incluyo al cat.h y ahy pongo todo?

Mmmm sera el compilador y debe esto hacerse asi?


Programador joven... Programar es compartir XD

Mis Proyectos, Guias y más.


C++ OWNS!
Volver arriba
Ver perfil del usuario Enviar mensaje privado Enviar correo MSN Messenger
eduar2083
Usuario Activo


Registrado: 14 Nov 2008
Mensajes: 195
Ubicación: Lima - Perú

Mensaje Publicado: Mar 20 Dic, 2011 02:44 am

Título del mensaje: Re: Clases y sus implementaciones

Responder citando

Hola.
La declaración de la clase se hace en un archivo con extensión .h .hpp, personalmenete suelo usar la primera. En este paso se define la Interfaz de la clase. Veamos un ejemplo:
Código:
// MyClass.h

#ifndef MYCLASS_H_INCLUDED
#define MYCLASS_H_INCLUDED

class MyClass
{
   public:
      MyClass();
      ~MyClass();

};

#endif // MYCLASS_H_INCLUDED

Aquí se deben declarar tanto los datos miembro como las funciones que manipulan dichos datos (funciones miembro) pero sin implementación, es decir sólo sus prototipos.

En otro archivo aparte, se escribe el código de las funciones miembro. En este paso se define la Implementación de la clase.
Código:
// MyClass.cpp

#include <iostream>
#include "MyClass.h"

using namespace std;

MyClass::MyClass()
{
   cout << "Objeto creado\n";
}

MyClass::~MyClass()
{
   cout<< "Objeto destruido\n";
}


Hasta aquí ya se tiene la clase y su implementación, lista para crear objetos de dicha clase. Hagamos una prueba:
Código:
#include <cstdlib>
#include "MyClass.h"

int main()
{
   MyClass *obj = new MyClass();

   delete obj;

   return EXIT_SUCCESS;
}


Ahora bien, para que esto funcione, se deben compilar juntos los archivos .cpp que usará nuestro programa main, esto difiere de un entorno (IDE) a otro. La forma más básica sin utilizar un IDE es hacerlo desde el shell (Compilador GNU C):
Código:
g++ MyClass.cpp main.cpp -o salida.exe

Y ejecutas desde la consola simplemente invocando al ejecutable (.exe).

Algo que debes saber es que en C++ la destrucción de objetos está garantizada con una llamada al destructor (delete), algo que es muy escurridizo en Java.

Un saludo.

Volver arriba
Ver perfil del usuario Enviar mensaje privado
Darkside-tk2
Usuario Activo


Registrado: 30 May 2011
Mensajes: 214
Ubicación: Portoviejo - Manabí - Ecuador

Mensaje Publicado: Mar 20 Dic, 2011 03:37 am

Título del mensaje: Re: Clases y sus implementaciones

Responder citando

Gracias por la aclaracion...

Si vi un poco de eso de destructores, otra forma que halle de hacerlo

es incluir ambos archivos en el main, pero eso ya es otra practica.

Entoces una cosa cuando hacemos un proyecto cosa que no se por que detesto se hace lo mismo que en la consola o sea que se compilan los 2...

Mmmm ya le empiezo a ver un poco más la importancia a esto de los projects


Programador joven... Programar es compartir XD

Mis Proyectos, Guias y más.


C++ OWNS!
Volver arriba
Ver perfil del usuario Enviar mensaje privado Enviar correo MSN Messenger
Responder al Tema
Mostrar mensajes anteriores:   
Ir a:  
Todas las horas están en GMT + 2 Horas

Temas relacionados

Tema Autor Foros Respuestas Publicado
El foro no contiene ningún mensaje nuevo

Array de clases dinamico con new

dragondgold C, C#, Visual C++ 6 Vie 24 Feb, 2012 16:06 pm Ver último mensaje
El foro no contiene ningún mensaje nuevo

Clases V.S Structuras o trabajando juntas?

Darkside-tk2 C, C#, Visual C++ 2 Jue 22 Dic, 2011 02:47 am Ver último mensaje
El foro no contiene ningún mensaje nuevo

Buen tutorial de clases

Darkside-tk2 Temas generales 2 Lun 19 Dic, 2011 19:29 pm Ver último mensaje
El tema está bloqueado: no pueden editarse ni agregar mensajes.

busco clases de VB para office (macros para pow...

irina Bolsa de trabajo 0 Vie 02 Sep, 2011 16:06 pm Ver último mensaje
El foro no contiene ningún mensaje nuevo

[C++]¿Comunicacion entre clases?

Kai_Noctis C, C#, Visual C++ 4 Lun 25 Jul, 2011 22:28 pm Ver último mensaje
Panel de Control
No puede crear mensajes, No puede responder temas, No puede editar sus mensajes, No puede borrar sus mensajes, No puede votar en encuestas,