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

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  por que en algunos archivos de encabezados crean clases imcompletas
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: por que en algunos archivos de encabezados crean clases imcompletas  (Leído 2,688 veces)
grucho

Desconectado Desconectado

Mensajes: 2


Ver Perfil
por que en algunos archivos de encabezados crean clases imcompletas
« en: 30 Octubre 2017, 22:27 pm »

Hola gente quisiera saber por que en algunos archivos de encabezados crean clases imcompletas.

aca un ejemplo.
Código
  1. #pragma once
  2.  
  3. class InteractComponent; // <------ a esto me refiero con clase incompleta.
  4.  
  5. class LeverTile final : public LevelDynamicTile {
  6. public:
  7. LeverTile(LevelScreen* levelScreen);
  8.  
  9. //.....
  10. //.....
  11. private:
  12. // the lever can only be used by hand if the main char is in this range.
  13. // it is however always possible for a telekinesis spell to activate the lever if its projectile reaches the lever.
  14. static const float ACTIVATE_RANGE;
  15. std::vector<LeverDependentTile*> m_dependentTiles;
  16. bool m_isGround = false;
  17. bool m_isTelekinesisLocked = false;
  18. InteractComponent* m_interactComponent;
  19. };

si se fijan la clase InteractComponent esta incompleta.
tambien crea un puntero de tipo InteractComponent.

desde ya muchas gracias a todos  y disculpen si no me explico bien ya q soy nuevo en c++.


· Los títulos deben ser descriptivos
>aquí las reglas del foro
-Engel Lex


« Última modificación: 31 Octubre 2017, 00:22 am por engel lex » En línea

CalgaryCorpus


Desconectado Desconectado

Mensajes: 323


Ver Perfil WWW
Re: Ayuda c++
« Respuesta #1 en: 30 Octubre 2017, 23:59 pm »

Una clase se puede declarar o definir o ambas.
Si solo pones el nombre sin especificar como esta definida, se trata de la declaracion.
Solo requieres un nombre, en ese momento. En alguna parte de tu programa tiene que estar esa variable definida, sino el programa no va a linkear.

Solo es posible definir punteros a los tipos declarados. Esto es posible, pues al compilador solo le interesa conocer el tamano de los datos y el tamano de los punteros no depende de los datos apuntados, es constante.

Si modificaras el programa y removieras el * y en vez de puntero fuera un campo de ese tipo, el compilador no va a aceptar la declaracion pues no tiene manera de calcular el tamano.


« Última modificación: 31 Octubre 2017, 00:03 am por CalgaryCorpus » En línea

Aqui mi perfil en LinkedIn, invitame un cafe aqui
grucho

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: por que en algunos archivos de encabezados crean clases imcompletas
« Respuesta #2 en: 31 Octubre 2017, 16:54 pm »

antes q nada muchas gracias x responder.

Una clase se puede declarar o definir o ambas.
Si solo pones el nombre sin especificar como esta definida, se trata de la declaracion.
Solo requieres un nombre, en ese momento. En alguna parte de tu programa tiene que estar esa variable definida, sino el programa no va a linkear.

Solo es posible definir punteros a los tipos declarados. Esto es posible, pues al compilador solo le interesa conocer el tamano de los datos y el tamano de los punteros no depende de los datos apuntados, es constante.

Si modificaras el programa y removieras el * y en vez de puntero fuera un campo de ese tipo, el compilador no va a aceptar la declaracion pues no tiene manera de calcular el tamano.


listo ahi entendi, pero tengo una duda nueva
por que simplemente no incluyen el archivo de encabezado de la clase InteractComponent?
disculpa si soy muy molesto
« Última modificación: 31 Octubre 2017, 16:56 pm por grucho » En línea

CalgaryCorpus


Desconectado Desconectado

Mensajes: 323


Ver Perfil WWW
Re: por que en algunos archivos de encabezados crean clases imcompletas
« Respuesta #3 en: 1 Noviembre 2017, 04:25 am »

La compilacion no es barata.
Toma tiempo y recursos,
Si la clase tiene varios campos, el compilador tiene q chequear todo otra vez.
Más económico en tiempo y recursos, si solo usas un puntero a la clase, declararlo así
En línea

Aqui mi perfil en LinkedIn, invitame un cafe aqui
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
No puedo escuchar algunos archivos con extensión .wav
Multimedia
[@] 3 4,159 Último mensaje 16 Febrero 2005, 22:28 pm
por [@]
Problema con inclusion de archivos y clases
PHP
4rkn63l 4 2,391 Último mensaje 27 Junio 2011, 11:04 am
por 4rkn63l
¿ftell da problemas con algunos archivos?
Programación C/C++
do-while 2 2,296 Último mensaje 18 Abril 2012, 16:58 pm
por do-while
Crean una barra de vida real que funciona con algunos juegos
Noticias
wolfbcn 2 1,797 Último mensaje 2 Mayo 2013, 22:14 pm
por -- KiLiaN --
Archivos cpp y hpp o clases precompliados
Programación C/C++
patilanz 3 2,262 Último mensaje 16 Febrero 2014, 18:37 pm
por xaps
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines