• Jueves 14 de Noviembre de 2024, 04:32

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - bufalito

Páginas: [1]
1
C/C++ / Re: Clases Mutuamente Incluidas.. Como???
« en: Miércoles 22 de Septiembre de 2004, 16:01 »
Hola,

La solución que te planteo a acontinuación es MUY parecida a la de CHUIDIANG salvo en algunas cosillas que considero importantes:

UClaseA.h
Código: Text
  1.  
  2. class B;
  3.  
  4. class A
  5. {
  6. private: //tambien puede ser public
  7.   B *ObjetoB;
  8. };
  9.  
  10.  

UClaseA.cpp
Código: Text
  1.  
  2. #include <UClaseB.h>
  3. /*esto permite crear objetos de la clase B ya que a partir de aca se encuentra definida dicha clase*/
  4.  
  5.  

UClaseB.h
Código: Text
  1.  
  2. class A;
  3.  
  4. class B
  5. {
  6. private: //tambien puede ser public
  7.   A *ObjetoA;
  8. };
  9.  
  10.  

UClaseB.cpp
Código: Text
  1.  
  2. #include <UClaseA.h>
  3. /*esto permite crear objetos de la clase A ya que a partir de aca se encuentra definida dicha clase*/
  4.  
  5.  

¿Y cuales son las diferencias? Pues que ninguna de las cabeceras (los archivos .h) poseen inclusiones de ningun tipo, esto hace mucho mas "compilable e independiente" tu código. En realidad, la teoría nos dice que así debería de hacerse el código anterior puesto que ni la clase A tiene un objeto B y tampoco la clase B tiene un objeto A, lo que en realidad tienen son referencias a objetos de ese tipo.

Saludos,

Bufalito

2
C/C++ / Re: Funciones O Parametros
« en: Miércoles 22 de Septiembre de 2004, 15:38 »
Si, la verdad que usar el operador & en la declaración de la función es la MEJOR idea puesto que kla programación se hace más limpia y las funciones más claras. Sin embargo, vuelvo a repertir, el operador & en las funciones solo sirve en C++ ya que no es soportado por el lenguaje C puro.

Saludos,

Bufalito

3
C/C++ / Re: Funciones O Parametros
« en: Miércoles 22 de Septiembre de 2004, 00:02 »
Lo que tienes que hacer es utilizar punteros y referencias como muestra el siguiente código:

Código: Text
  1.  
  2.  
  3. void MiFuncion(int *parametro1,char *parametro2)
  4. {
  5.    (*parametro1)=1;
  6.    (*parametro2)='a';
  7. }
  8.  
  9. void main()
  10. {
  11.    int variable1;
  12.    char variable2;
  13.  
  14.    MiFuncion(&variable1,&variable2);
  15. }
  16.  
  17.  
  18.  

Explico un poco lo anterior:

1. En el programa principal (funcion MAIN) se declaran las variables que tu quieres que recibir desde la función susodicha (en este caso MiFuncion).

2. Llamas a la funcion en cuestión enviando "la referencia" donde se almacenarán los valores a ser devueltos, o en diferentes palabras, enviando "la dirección de memoria" de dichas variables.

3. La función MiFuncion utiliza unos punteros para saber donde almacenará la información a ser devuelta.

No se si me explico bien. La utilización de puntores y referencias es, a mi huimilde parecer, uno de los conocimientos clave para poder programar y entender como funciona el lenguaje C.

La solución de nuestro amigo BLAG (al cual no conozco porque soy nuevo en esto... pero saludos  :D) no funciona en C pero si en C++ (lo cual es una bendición). Esa forma de recibir referencias es muy parecida al VAR de pascal, la verdad un buen trabajo de los diseñadores del C++.

La solución de nuestro amigo JUANK tambien es interesante, eso si, siempre y cuando no tengas muchas funciones de este tipo porque terminarias creando una cantidad impresionante de tipos... no se... en una de esas es practico... asi que yo mismo me pondre a ver que tal.

Espero te ayude en algo,

Bufa

Páginas: [1]