Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Rockstar97 en 12 Mayo 2015, 04:25 am



Título: [AYUDA] 'variable' was not declared in this scope
Publicado por: Rockstar97 en 12 Mayo 2015, 04:25 am
Estoy haciendo un código con clases, donde se almacenará información de los usuarios pero me da los siguientes errores:

Código:
C:\Users\personal\Documents\SinNombre3.cpp	In function 'int main()':
35 9 C:\Users\personal\Documents\SinNombre3.cpp [Error] 'nombre' was not declared in this scope
37 9 C:\Users\personal\Documents\SinNombre3.cpp [Error] 'especialidad' was not declared in this scope
39 9 C:\Users\personal\Documents\SinNombre3.cpp [Error] 'nsocial' was not declared in this scope
41 9 C:\Users\personal\Documents\SinNombre3.cpp [Error] 'nacimiento' was not declared in this scope

Estoy practicando, este es el código:

Código
  1. #include <iostream>
  2. #include <windows.h>
  3. #include <stdlib.h>
  4. #include <stdio.h>
  5.  
  6. using namespace std;
  7. const int tamanio=5;
  8.  
  9. class Medico
  10. {
  11. public:
  12. char nombre[30];
  13. char especialidad[30];
  14. int nsocial;
  15. int nacimiento;
  16. void Leer();
  17. void Mostrar();
  18.  
  19. };
  20.  
  21. main()
  22. {
  23. Medico M;
  24. int opc;
  25. int cant=0;
  26. do
  27. {
  28. cout<<"[1]----> LEER" <<endl;
  29. cout<<"[2]----> MOSTRAR" << endl;
  30. cin>>opc;
  31. switch(opc)
  32. {
  33. case 1:
  34. cout<<"NOMBRE: ";
  35. cin>>nombre;
  36. cout<<"ESPECIALIDAD: ";
  37. cin>>especialidad;
  38. cout<<"N. SEGURO SOCIAL: ";
  39. cin>>nsocial;
  40. cout<<"FECHA DE NACIMIENTO: ";
  41. cin>>nacimiento;
  42. break;
  43.  
  44. case 2:
  45. cout<<"CASO 2"<<endl;
  46. break;
  47. }
  48. }while(opc!=3);
  49.  
  50. cin.get();
  51. }

Compilo con Dev C++, he buscado por todos lados y no sale mucho relacionado con mi problema.

EDIT: Puse las variables públicas, porque creí que podría ser problema de que estaban privadas, pero sigue lo mismo.


Título: Re: [AYUDA] 'variable' was not declared in this scope
Publicado por: x64core en 12 Mayo 2015, 04:47 am
Para acceder a las variables de una clase se hace similar a como acceder a los miembros de una estructura usando el punto (.) y el guion con el mayor que (->).

M.xxxxxxxxx

Si estas trabajando en Windows el mejor entorno y compilar es VS con VC++.


Título: Re: [AYUDA] 'variable' was not declared in this scope
Publicado por: MellaSystems en 12 Mayo 2015, 16:52 pm
Buenas, para tu duda lo que debes hacer es usar el objeto que creaste M y luego colocar el (.) para acceder a los atributos de la clase.

Ejemplo:
Código
  1. {
  2. case 1:
  3. cout<<"NOMBRE: ";
  4. cin>>M.nombre;
  5. cout<<"ESPECIALIDAD: ";
  6. cin>>M.especialidad;

Lee un poquito mas sobre las clases y te ayudara a entender mejor tu programa


Título: Re: [AYUDA] 'variable' was not declared in this scope
Publicado por: Rockstar97 en 12 Mayo 2015, 17:06 pm
Citar
Para acceder a las variables de una clase se hace similar a como acceder a los miembros de una estructura usando el punto (.) y el guion con el mayor que (->).

M.xxxxxxxxx

Si estas trabajando en Windows el mejor entorno y compilar es VS con VC++.

Es que en el curso nos ponen a trabajar con compiladores algo viejos, o con el Borland o con el Dev C++.
De todas maneras investigaré sobre el que dices ya que esto de los compiladores me gusta mucho probarlos.



Buenas, para tu duda lo que debes hacer es usar el objeto que creaste M y luego colocar el (.) para acceder a los atributos de la clase.

Ejemplo:
Código
  1. {
  2. case 1:
  3. cout<<"NOMBRE: ";
  4. cin>>M.nombre;
  5. cout<<"ESPECIALIDAD: ";
  6. cin>>M.especialidad;

Lee un poquito mas sobre las clases y te ayudara a entender mejor tu programa

Sí, ese era el problema... Yo sé eso del punto (.) pero se me había pasado, gracias por sus comentarios me ayudaron mucho.


Título: Re: [AYUDA] 'variable' was not declared in this scope
Publicado por: MellaSystems en 12 Mayo 2015, 17:09 pm
Aunque te recomendaria que uses los metodos setter y getter. Es para ayudar que estamos.