Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Clases en diferentes archivos y directorios

Estas en el tema de Clases en diferentes archivos y directorios en el foro de C/C++ en Foros del Web. Hola quiero crear una clase en la que la definicion se encuentre en un archivo hpp y luego la implementacion en un archivo cpp. Esto ...
  #1 (permalink)  
Antiguo 21/01/2014, 00:48
Avatar de patilanz  
Fecha de Ingreso: enero-2012
Mensajes: 880
Antigüedad: 12 años, 3 meses
Puntos: 29
Clases en diferentes archivos y directorios

Hola quiero crear una clase en la que la definicion se encuentre en un archivo hpp y luego la implementacion en un archivo cpp. Esto lo consigo si creo la clase en el mismo proyecto pero si quiero guardar la clase en un archivo para poder usar la desde diferentes proyectos no se puede ya que me muestra el error de la falta del archivo "stdafx.h". Utilizo Visual Studio 2012.

Se puede precompliar o algo por el estilo o tengo que copiar los archivos en cada nuevo proyecto ?

Y luego funcionara con las clases proxy?

Saludos
  #2 (permalink)  
Antiguo 21/01/2014, 07:11
Avatar de vangodp  
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 10 años, 7 meses
Puntos: 38
Respuesta: Clases en diferentes archivos y directorios

Yo hago así y me funciona, pero en codeblocks:
Código C++:
Ver original
  1. // cabecera.h
  2. #ifndef CABECERA.H
  3. #define CABECERA.H
  4.  
  5. class MiClase {
  6.     //mis metodos y atributos
  7. };
  8.  
  9.  
  10. #endif // CABECERA.H

Código C++:
Ver original
  1. // cabecera.cpp
  2.  
  3. //incluyo el archivo de cabecera.h aqui:
  4. #include "cabecera.h"
  5.  
  6. // aqui la implementacion de los metodos de la clase "MiCLase"

Código C++:
Ver original
  1. // main.cpp
  2. #include <iostream>
  3. using namespace std;
  4.  
  5. //incluyo el archivo de cabecera.h y cabecera.cpp aqui, debajo de los demas includes para que haga uso de los mismos.
  6. // Todos los .h
  7. #include "cabecera.h"       // Este con su proteccion contra doble include :)
  8.  
  9. // Todos los .cpp (implementaciones)
  10. #include "cabecera.cpp"

Solo compilo el main.cpp, si marco que se compile todo no me hace falta incluir el cabecera.cpp ya que me tira error.
De esta forma puedo incluir cabecera.h y cabecera.cpp en un nuevo proyecto.
Siempre compilando el principal.
Seguro hay otras formas de hacerlo pero esta me gusta por que puedo pinchar directo en el main.cpp y compilarlo sin el archivo de proyecto, me funciona bien en ambos casos.

si estan en diferentes directorio como dices pon la ruta completa #include "c:\....\.....\cabecera.h"
Lo mismo para cabecera.cpp
O en las opciones de tu ide, configure las rutas relativas.
me gusta tener todo dentro de una carpeta bajo disco c: ejemplo.
c:\main
Dentro pongo los archivos de proyecto los .h y los .cpp
Configuro que la salida como los obj y los exe en otra carpeta como c:\salida
y ahi tengo 2 mas.
c:\salida\debug y c:\salida\release
Segun use va parar dentro de uno o dentro de otra.
En c:\main una sola carpeta como recursos por si pongo una imagen o otros tipos de archivo que les voy a cargar.
Así facilito mucho el trabajo y recordar las rutas.
Pero eso es en codeblocks, cada ide tiene sus diferencias.

Última edición por vangodp; 21/01/2014 a las 09:03
  #3 (permalink)  
Antiguo 22/01/2014, 11:04
Avatar de abimex
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: ~
Mensajes: 751
Antigüedad: 17 años, 2 meses
Puntos: 137
Respuesta: Clases en diferentes archivos y directorios

Código C++:
Ver original
  1. #include "cabecera.cpp"
Creo que no es buena idea incluir las implementaciones, eso lo hace el compilador en el proceso de linkeo.

Un saludo!
__________________
>> abimaelmartell.com
  #4 (permalink)  
Antiguo 22/01/2014, 13:33
Avatar de vangodp  
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 10 años, 7 meses
Puntos: 38
Respuesta: Clases en diferentes archivos y directorios

Si vas hacer un hola mundo++ no voy a montar un mega proyecto.
Pero si vas a crear un programa decente, un proyecto bien configurado es de grande ayuda.
Saludos! ^^
  #5 (permalink)  
Antiguo 22/01/2014, 13:38
Avatar de abimex
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: ~
Mensajes: 751
Antigüedad: 17 años, 2 meses
Puntos: 137
Respuesta: Clases en diferentes archivos y directorios

pues igual aunque sea un hola mundo hay que tenerlo bien ordenado como se debe :)

Un saludo!
__________________
>> abimaelmartell.com
  #6 (permalink)  
Antiguo 22/01/2014, 14:35
Avatar de patilanz  
Fecha de Ingreso: enero-2012
Mensajes: 880
Antigüedad: 12 años, 3 meses
Puntos: 29
Respuesta: Clases en diferentes archivos y directorios

Hola gracias por sus respuestas creo que no me he explicado bien. Se como separar la implementacion de la interfaz. Lo que quiero es tener una carpeta en la que tener varios archivos cpp y hpp y que pueda agregar en diferentes proyectos en diferentes carpetas pero agregando solo el archivo hpp. Ademas quiero que funcione con clases proxy. Es posible compliar todo en un archivo ?

Saludos

Etiquetas: clases, directorios, funcion
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:01.