Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Sancho.Mazorka en 6 Octubre 2011, 23:01 pm



Título: Ayuda con un concepto, no sé qué es
Publicado por: Sancho.Mazorka en 6 Octubre 2011, 23:01 pm
Hola, estaba retomando el tema con C++ y Clases y me puse a seguir el ejemplo de un libro que tengo (Como programar en C/C++, Segunda Edición, Deitel & Deitel) y hay una sección de código que me llamó la atención.
No está dentro de la clase, no es un prototipo, ni tapmoco está dentro del main, así que no sé a qué corresponde, alguien me podría decir por qué está ahí y qué es?

Ese código no es parte de la clase? No debería ir adentro?

Código
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. class Time{
  6. public:
  7.    Time();
  8.    void setTime(int, int, int);
  9.    void printMilitary();
  10.    void printStandard();
  11.  
  12. private:
  13.    int hour;
  14.    int minute;
  15.    int second;
  16. };
  17.  
  18. //ESTE CODIGO
  19. Time::Time() {hour = minute = second = 0;}
  20.  
  21. void Time::setTime(int h, int m, int s){
  22.    hour = (h >= 0 && h < 24) ? h :0;
  23.    minute = (m >= 0 && m < 60) ? m :0;
  24.    second = (s >= 0 && s < 60) ? s :0;
  25. }
  26.  
  27. void Time::printMilitary(){
  28.    cout << (hour < 10 ? "0" : "") << hour << ":"
  29.        << (minute < 10 ? "0" : "") << minute << ":"
  30.        << (second < 10 ? "0" : "") << second;
  31. }
  32.  
  33. void Time::printStandard(){
  34.    cout << ((hour == 0 || hour == 12) ? 12 : hour % 12)
  35.        << ":" << (minute < 10 ? "0" : "") << minute
  36.        << ":" << (second < 10 ? "0" : "") << second
  37.        << (hour < 12 ? " AM" : " PM");
  38. }
  39. // ESTE CODIGO
  40.  
  41. main(){
  42.    Time t;
  43.  
  44.    cout << "The initial military time is ";
  45.    t.printMilitary();
  46.  
  47.    cout << "\nThe initial standar time is ";
  48.    t.printStandard();
  49.  
  50.  
  51.    t.setTime(13, 27, 6);
  52.    cout << "\n\nMilitary time after seTime is ";
  53.    t.printMilitary();
  54.  
  55.    cout << "\nStandar time after setTime is ";
  56.    t.printStandard();
  57.  
  58.  
  59.    t.setTime(99, 99, 99);
  60.    cout << "\n\nAfter attempting invalid settings:\n" << "Military Time: ";
  61.    t.printMilitary();
  62.  
  63.    cout << "\Standard time: ";
  64.    t.printStandard();
  65.  
  66.    cout << endl;
  67.    return 0;
  68. }


Saludos, Sancho.Mazorka!    :¬¬


Título: Re: Ayuda con un concepto, no sé qué es
Publicado por: Eternal Idol en 6 Octubre 2011, 23:16 pm
Es parte de la clase (constructor y metodos) y no tiene necesariamente que ir en la declaracion de la misma. Es mas normalmente se hace la declaracion en una cabecera (.h/.hpp) y la definicion en un archivo de codigo (.cpp).

http://www.cplusplus.com/doc/tutorial/classes/


Título: Re: Ayuda con un concepto, no sé qué es
Publicado por: Sancho.Mazorka en 6 Octubre 2011, 23:24 pm
Muchas gracias.


Título: Re: Ayuda con un concepto, no sé qué es
Publicado por: Eternal Idol en 6 Octubre 2011, 23:29 pm
De nadas  ::)