Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Abril7 en 27 Noviembre 2016, 02:18 am



Título: Problema llamando el método de una clase :/
Publicado por: Abril7 en 27 Noviembre 2016, 02:18 am
Hola en este pedazo de mi codigo:
Código
  1.  
  2. JugadorSolo a;
  3.  
  4.      for(int a =0;a <= 5; a++){
  5. for(int b = 0; b<=6; b++)
  6.                tablero[a][b] = ' ';
  7. }
  8.  
tengo que usar el arreglo "char tablero[6][7]" que forma parte de la clase JugadorSolo. Entonces cree un get en esta clase para poder reasignarlo a otra variable en el main y usarlo, pero al hacerlo me da un error, hago algo como esto:

Código
  1. JugadorSolo.h:
  2.  
  3. char JugadorSolo::getTablero()
  4. {
  5.    return tablero[6][7];
  6. }
  7.  
  8. int main:
  9.  
  10.    JugadorSolo a;
  11.  
  12.        for(int a =0;a <= 5; a++){
  13. for(int b = 0; b<=6; b++)
  14.           a.getTablero();
  15.  
  16. }
  17.  
Me da el error:
"Request for member "getTablero" in 'a', which is of non-class type 'int'

Despues intente haciendo todo el ciclo una funcion de la clase para poder utilizarlo entonces lo ponia algo asi:
    JugadorSolo a;
    a.ciclo();

Y aqui me da el error 'a' was not declared in this scope.

Despues intente poner esa variable en global y me da este error:

'tablero' was not declared in this scope


No se que hago mal o por qué de ninguna manera funciona, agradeceria mucho si alguien sabe.

Muchas gracias.



Mod: Los códigos deben ir en etiquetas GeSHi, no hacer doble post


Título: Re: Problema llamando el método de una clase :/
Publicado por: engel lex en 27 Noviembre 2016, 02:28 am
donde está la declaranción de la clase JugadorSolo?


Título: Re: Problema llamando el método de una clase :/
Publicado por: Abril7 en 27 Noviembre 2016, 02:32 am
esta arriba, no lo anote porque solo puse una parte del codigo, pero esta hecha correctamente


Título: Re: Problema llamando el método de una clase :/
Publicado por: engel lex en 27 Noviembre 2016, 02:39 am
no habia leido el error ya lo vi

Citar
"Request for member "getTablero" in 'a', which is of non-class type 'int'

peticion para el miembro "getTablero" en 'a', quien es un tipo int y no es una clase

Código
  1.  
  2. char JugadorSolo::getTablero()
  3. {
  4.    return tablero[6][7];
  5. }
  6.  
  7. int main:
  8.  
  9.    JugadorSolo a; //<--------
  10.  
  11.        for(int a =0;a <= 5; a++){//<-  "int a =0"
  12. for(int b = 0; b<=6; b++)
  13.           a.getTablero();
  14.  
  15. }
  16.  

redeclaraste "a" como tipo int... es raro que el compilador te dejara hacer esa metida de pata... pero eso es


Título: Re: Problema llamando el método de una clase :/
Publicado por: Abril7 en 27 Noviembre 2016, 02:45 am
Ahh es que en si en el for estaba el int a, cambie el nombre del objeto a
JugadorSolo uno;

e intente usar ahora la funcion que cree: uno.getTablero();
y ahora me da otro error, me dice " 'uno' was not declared in this scope" la cuestion es que justo antes de eso declarandolo .-. como se supone que arreglo eso?


Título: Re: Problema llamando el método de una clase :/
Publicado por: engel lex en 27 Noviembre 2016, 02:47 am
muestra la sección de código a ver (recuerda que no veo lo que tu ves)


Título: Re: Problema llamando el método de una clase :/
Publicado por: Abril7 en 27 Noviembre 2016, 02:50 am
Ah si, mira aquí estan:

https://gyazo.com/b6bbc8db16bd8fcaf7b9e7cc0edc3d66
https://gyazo.com/97d48f9b646fa6c0309323591d7653bb
https://gyazo.com/8e38e824a60ad04084e4c9d66a59f674


Título: Re: Problema llamando el método de una clase :/
Publicado por: engel lex en 27 Noviembre 2016, 02:59 am
el for no tiene llaves es decir solo aplica hasta el siguiente ";"

(http://i.imgur.com/EAt2cEd.png)

los for al igual que las otras estructuras de control crean su propio scope, ese "uno" solo está declarado dentro de ese for...

ten más cuidado con las declaraciones, las llaves y los scopes


Título: Re: Problema llamando el método de una clase :/
Publicado por: Abril7 en 27 Noviembre 2016, 03:35 am
https://gyazo.com/5f9fad2063acd88e5a2bb947fa368e84


Título: Re: Problema llamando el método de una clase :/
Publicado por: engel lex en 27 Noviembre 2016, 03:43 am
lo siento no entiendo lenguaje de señas cursores...

pero no has arreglado el for


Título: Re: Problema llamando el método de una clase :/
Publicado por: Abril7 en 27 Noviembre 2016, 04:14 am
JAJAJAJA perdóname. Pensé que ya lo había arreglado, pero igual para evitarme problemas lo que estoy haciendo ahora es crear una funcion para que me ejecute practicamente todo lo que tenia en el main.
Una disculpa por tu tiempo, apenas aprendi a programar hace como 3 meses y ahora tengo que hacer un conecta 4 e intento implementar inteligencia artificial sin tener mucha idea de lo que hago, muchas gracias!!!


Título: Re: Problema llamando el método de una clase :/
Publicado por: engel lex en 27 Noviembre 2016, 04:21 am
primero has el juego, luego implementa los npc...