elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Estructura proyecto
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Estructura proyecto  (Leído 2,108 veces)
gremboxic

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Estructura proyecto
« en: 1 Mayo 2011, 09:37 am »

Buenas,
hace tiempo que no programo en C++ y estuve bastante tiempo con Java.
Ahora me he vuelto a poner en C++ y echo de menos una cosa que gustaba mucho de Java, su organización.
En Java es muy fàcil crear packages y tenerlo todo bien ordenadito, y en C++ me encuentro que todo va dentro de src al monton.
Supongo que hay alguna forma de hacerlo un poco màs bonito (al fin y al cabo supongo que será qüestion de poner el path en el Makefile) però estoy desenvolupando en Anjuta y no encuentro la manera.
He provado de crear un grupo "dominio" (miscelaneous data) y poner las clases con ese objetivo, peró cuando compilo el main no hay problema, pero quan intento montarlo me dice que no puede resolver las referencias a funciones de otras clases.

Alguna idea, o una iluminación que me ayude a organizar mejor mis proyectos??

para poner un ejemplo un poco más ilustrativo, supongamos que tenemos una clase Ciclista, y otra CiclistaDAO y queremos tener "ma o menos" la estructura seguiente:
-domain
|-entities
| |-Ciclista (.h i/o .cpp)
| |-Bici (.h i/o .cpp)
| |-...
|-dao
| |-CiclistaDAO (.h i/o .cpp)
| |-BiciDAO (.h i/o .cpp)
| |-..
main.cpp

graicas


En línea

leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Estructura proyecto
« Respuesta #1 en: 1 Mayo 2011, 18:58 pm »

Tu puedes dar la estructura que quieras, solo en los archivos de inclusión debes tomar bien en cuenta las rutas, aquí te pongo un ejemplo básico:


Código:
┌─[0 leo@archero ~/c_projects/organizacion]$
└─> tree
.
├── Clases
│   └── Figura.h
├── cpps
│   └── Figura.cpp
└── main.cpp

2 directories, 3 files

Un ejemplo básico.

Clases/Figura.h

Código
  1. #ifndef _FIGURA_H
  2. #define _FIGURA_H
  3. class Figura
  4. {
  5. public:
  6. Figura(const int&);
  7. void setLados(const unsigned int &lados);
  8. unsigned int getLados(void);
  9. private:
  10. unsigned int lados;
  11. };
  12. #endif

cpps/Figura.cpp

Código
  1. #include "../Clases/Figura.h"
  2.  
  3. Figura::Figura(const int &l)
  4. {
  5.    lados = l;
  6. }
  7.  
  8. void Figura::setLados(const unsigned int &l)
  9. {
  10. lados = l;
  11. }
  12. unsigned int Figura::getLados(void)
  13. {
  14. return lados;
  15. }
  16.  

main.cpp:

Código
  1. #include "Clases/Figura.h"
  2. #include <iostream>
  3. int main(void)
  4. {
  5.    signed int lados = 2;
  6. Figura fig(lados);
  7.  
  8. std::cout << fig.getLados() << std::endl;
  9.  
  10. return 0;
  11. }
  12.  

Compilación:

Código:
g++ main.cpp cpps/Figura.cpp -o salida

Ahora la estructura:

Código:
┌─[0 leo@archero ~/c_projects/organizacion]$
└─> tree
.
├── Clases
│   └── Figura.h
├── cpps
│   └── Figura.cpp
├── main.cpp
└── salida

2 directories, 4 files

En la inclusión de las cabeceras, debes de tomar en cuenta las rutas, tú puedes distribuir las cabeceras y sus implementaciones como quieras.

Saludos.


En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Proyecto de Estructura de datos.... GRAFOS!!! :c
Programación C/C++
axel19 3 2,297 Último mensaje 29 Mayo 2018, 20:17 pm
por Serapis
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines