Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Coda en 21 Abril 2016, 02:04 am



Título: Duda con clases y objetos: miembros de datos
Publicado por: Coda en 21 Abril 2016, 02:04 am
Hola y buenas a todos, soy nuevo en la pagina y tambien programando :d , estoy guiandome con un libro y ahora voy por Clases y objetos, peor quede bloqueado despues de que el libro muestra un ejemplo que indica que enseña: Miembros de datos,funciones establece y obtener que para dar un detalle de lo que hara el programa lo describen asi:

La clase LibroCalificaciones con miembro de datos, una función establecer y una función obtener
En nuestro siguiente ejemplo, la clase LibroCalificaciones (fi gura 3.5) mantiene el nombre del curso como un miembro
de datos, para que pueda usarse o modifi carse en cualquier momento, durante la ejecución de un programa. Esta
clase contiene las funciones miembro establecerNombreCurso, obtenerNombreCurso y mostrarMensaje. La función
miembro establecerNombreCurso almacena el nombre de un curso en un miembro de datos de LibroCalificaciones.
La función miembro obtenerNombreCurso obtiene el nombre del curso de ese miembro de datos. La función
miembro mostrarMensaje, que en este caso no especifi ca parámetros, sigue mostrando un mensaje de bienvenida que
incluye el nombre del curso. Pero como veremos más adelante, la función ahora obtiene el nombre del curso mediante
una llamada a otra función en la misma clase: obtenerNombreCurso.
Figura 3.5 | Defi nición y prueba de la clase LibroCalificaciones con un miembro de datos y funciones establecer y
obtener.


Código
  1. #include <iostream>
  2. #include <string >
  3.  
  4. using namespace std;
  5.  
  6. class LibroCalificaciones
  7. {
  8. public:
  9.  
  10. void establecerNombreCurso( string nombre )
  11. {
  12. nombreCurso = nombre;
  13. }
  14.  
  15.  
  16. string obtenerNombreCurso()
  17. {
  18. return nombreCurso;
  19. }
  20.  
  21.  
  22. void mostrarMensaje()
  23. {
  24.  
  25. cout << "Bienvenido al libro de calificaciones para\n" << obtenerNombreCurso() << "!"
  26. << endl;
  27. }
  28. private:
  29. string nombreCurso;
  30.  
  31.  
  32. int main()
  33. {
  34. string nombreDelCurso;
  35. LibroCalificaciones miLibroCalificaciones;
  36.  
  37. cout << "El nombre inicial del curso es: " << miLibroCalificaciones.obtenerNombreCurso()
  38. << endl;
  39.  
  40.  
  41. cout << "\nEscriba el nombre del curso:" << endl;
  42. getline( cin, nombreDelCurso );
  43. miLibroCalificaciones.establecerNombreCurso( nombreDelCurso );
  44.  
  45.  
  46. cout << endl;
  47. miLibroCalificaciones.mostrarMensaje();
  48. return 0;
  49. }


Yo lo unico que logro captar con claridad, es que Las funciones captan lo que se ingresa (obtenernombre) y luego lo muestra.... no se para que diablos usa establecer curso, y tampoco la funcionalidad de private string nombrecurso---- no veo que se le utilice alguna vez, si pudiesen ayudarme a entender el programa se los agradeceria mucho  ;D


Título: Re: Duda con clases y objetos: miembros de datos
Publicado por: HardForo en 21 Abril 2016, 02:11 am
Lee sobre setters y getters ya que establecerNombreCurso() es un setter o sea una funcion (o metodo) que te sirve para "setear" (establecer) el valor de un campo en tu objeto y obtenerNombreCurso() un getter (te devuelve el valor de un campo)


Le sobre visibilidad en POO : miembros* publicos, privados, protegidos, etc


*
tanto los campos (propiedades) como los metodos son miembros de la clase