Ver Mensaje Individual
  #2 (permalink)  
Antiguo 21/01/2014, 07:11
Avatar de vangodp
vangodp
 
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 11 años, 3 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