Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: alvaro22 en 17 Enero 2014, 21:45 pm



Título: duda codigo
Publicado por: alvaro22 en 17 Enero 2014, 21:45 pm
Buenas, tengo un problema al hacer un constructor de una clase en c++, exactamente en este punto:hacer que el constructor de la clase Ruleta reciba un objeto de tipo Crupier.
La clase crupier ya creada tiene diferentes parametros pero los necesarios son el DNI y CodigoEmpleado que son de tipo string.
Gracias, un saludo


Título: Re: duda codigo
Publicado por: ivancea96 en 17 Enero 2014, 21:57 pm
No dices el problema. Ni pones código.
:/


Título: Re: duda codigo
Publicado por: alvaro22 en 17 Enero 2014, 22:13 pm
Perdón es la primera vez que escribo aquí, el problema es hacer una clase ruleta con diferentes características, una de ellas es hacer ese constructor que no consigo hacerlo. Pongo el código que se me ocurre:

Código
  1. #ifndef RULETA_H
  2. #define RULETA_H
  3. #include <iostream>
  4. #include <string>
  5. #include <list>
  6. #include "persona.h"
  7. #include "crupier.h"
  8. using namespace std;
  9. class Ruleta{
  10. private:
  11.  
  12. Crupier crupier_;
  13.  
  14. public:
  15.  
  16.  
  17.  
  18. Crupier getCrupier(){
  19. return crupier_;
  20. }
  21.  
  22. void setCrupier(){
  23. crupier_=c;
  24. }
  25.  
  26.  
  27.  
  28.  
  29.  
  30. //Constructores
  31. [u]Aquí el problemaRuleta(Crupier c):....)[/u]r({};
  32.  
  33.  
  34.  
  35. };
  36. #endif

La clase Crupier es necesario un string DNI y string CodigoEmpleado para poder crear este objeto.


Título: Re: duda codigo
Publicado por: ivancea96 en 17 Enero 2014, 22:32 pm
Código
  1. Ruleta(Crupier c){}
Eso no te vale?
Para llamar a ese constructor, haces:
Código
  1. Crupier cru(...);
  2. Ruleta rul(cru);
Así se copiaría el objeto Crupier. Pero sigo sin saber bien cual es tu problema.


Título: Re: duda codigo
Publicado por: alvaro22 en 17 Enero 2014, 22:39 pm
Pues no estoy seguro voy a probar con lo que me pusiste. Mi problema es al hacer esto: Como para crear el crupier necesitamos sus datos, hacer que el constructor de la clase Ruleta reciba un objeto de tipo Crupier.

Gracias. Un saludo


Título: Re:
Publicado por: ivancea96 en 17 Enero 2014, 23:04 pm
Puedes hacer: ruleta rl(Crupier(dni, etc));

Enviado desde mi ST21i mediante Tapatalk


Título: Re: duda codigo
Publicado por: alvaro22 en 18 Enero 2014, 12:22 pm
Buenas, he probado con lo que me dijiste y no lo soluciono voy a indicar mejor el problema.
La clase Ruleta mantiene la cantidad de dinero que tiene el casino (banca_, de tipo int), el
número entre 0 y 36 que sale en cada jugada de forma aleatoria (bola_, de tipo int), una
lista de jugadores (jugadores_) y un crupier (crupier_).
La clase Ruleta debe cumplir los siguientes requisitos:
1. El constructor de la clase Ruleta inicia la bola a ­1, y la banca a 1 millón de euros.
Como para crear el crupier necesitamos sus datos, hacer que el constructor de la
clase Ruleta reciba un objeto de tipo Crupier.

Eso es exactamente lo que tengo q hacer y el código último que escribí es este:
Código
  1. #ifndef RULETA_H
  2. #define RULETA_H
  3. #include <iostream>
  4. #include <string>
  5. #include <list>
  6. #include "persona.h"
  7. #include "crupier.h"
  8. #include "jugador.h"
  9. using namespace std;
  10. class Ruleta{
  11. private:
  12. int banca_;
  13. int bola_;
  14. list<Jugador> jugadores_;
  15. Crupier crupier_;
  16.  
  17.  
  18. public:
  19.  
  20. int getBanca(){
  21. return banca_;
  22. }
  23.  
  24. //void setBanca();
  25.  
  26. int getBola(){
  27. return bola_;
  28. }
  29.  
  30. //void setBola();
  31.  
  32. Crupier getCrupier(){
  33. return crupier_;
  34. }
  35.  
  36. void setCrupier(){
  37. crupier_=c;
  38. }
  39.  
  40.  
  41.  
  42. list<Jugador> getJugadores(){
  43.  
  44. return jugadores_;
  45.  
  46. }
  47.  
  48.  
  49. //Constructores
  50. Ruleta(int bola=-1,int banca=1000000,Crupier c="33xx","codigo1"):Crupier(DNI,CodigoEmpleado),bola_(bola),banca_(banca),crupier_(c){};
  51.  
  52.  
  53.  
  54. };
  55. #endif


Título: Re: duda codigo
Publicado por: alvaro22 en 18 Enero 2014, 19:58 pm
Buenas, sigo probando y nada... alguien sabría como pasar ese objeto de tipo crupier? ?


Título: Re: duda codigo
Publicado por: ivancea96 en 18 Enero 2014, 20:35 pm
Probaste  pasarle como puntero?

Código
  1. private:
  2.  
  3. int banca_;
  4.  
  5. int bola_;
  6.  
  7. list<Jugador> jugadores_;
  8.  
  9. Crupier *crupier_;
  10. //...
  11.  
  12. Ruleta rl(&crupier);
  13. //...
  14.  


Título: Re: duda codigo
Publicado por: alvaro22 en 18 Enero 2014, 21:57 pm
Buenas, pero al pasar por puntero no estoy indicandole el DNI y CodigoEmpleado que son necesarios para crear un objeto de tipo crupier. Menudo lio... . Como harias tu la parte del constructor para pasar el objeto de tipo crupier? olvidandote de mi codigo q lo mismo lleva a error.


Título: Re: duda codigo
Publicado por: ivancea96 en 18 Enero 2014, 22:39 pm
si el constructor de Crupier tiene para meterle dni y todo eso, así:

Código
  1. Ruleta rul(new Crupier(dni, etc));

Eso si el Crupier se crea en ese momento. Si el Crupier es un objeto creado de antes, pues:

Código
  1. Crupier cru(...);
  2. Ruleta rul(&cru);

No se si es lo que buscas :o


Título: Re: duda codigo
Publicado por: alvaro22 en 18 Enero 2014, 23:10 pm
Buenas, voy a probar con eso, lo q busco es q el constructor reciba un objeto tipo crupier para poder conocer los datos luego al crear un crupier C en la clase ruleta.


Título: Re: duda codigo
Publicado por: alvaro22 en 18 Enero 2014, 23:30 pm
Nada me sigue fallando... esto no es normal.


Título: Re: duda codigo
Publicado por: ivancea96 en 18 Enero 2014, 23:33 pm
Pero el qué falla?

Si quieres y tienes Skype, agregame, y me dices a tiempo real, jaja

-ivancea96- (Skype)


Título: Re: duda codigo
Publicado por: alvaro22 en 18 Enero 2014, 23:41 pm
Mejor entocnes... jajjaja