Ayuda con un concepto, no sé qué es

Iniciado por Sancho.Mazorka, 6 Octubre 2011, 23:01 PM

0 Miembros y 1 Visitante están viendo este tema.

Sancho.Mazorka

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 (cpp) [Seleccionar]
#include <iostream>

using namespace std;

class Time{
public:
   Time();
   void setTime(int, int, int);
   void printMilitary();
   void printStandard();

private:
   int hour;
   int minute;
   int second;
};

//ESTE CODIGO
Time::Time() {hour = minute = second = 0;}

void Time::setTime(int h, int m, int s){
   hour = (h >= 0 && h < 24) ? h :0;
   minute = (m >= 0 && m < 60) ? m :0;
   second = (s >= 0 && s < 60) ? s :0;
}

void Time::printMilitary(){
   cout << (hour < 10 ? "0" : "") << hour << ":"
       << (minute < 10 ? "0" : "") << minute << ":"
       << (second < 10 ? "0" : "") << second;
}

void Time::printStandard(){
   cout << ((hour == 0 || hour == 12) ? 12 : hour % 12)
       << ":" << (minute < 10 ? "0" : "") << minute
       << ":" << (second < 10 ? "0" : "") << second
       << (hour < 12 ? " AM" : " PM");
}
// ESTE CODIGO

main(){
   Time t;

   cout << "The initial military time is ";
   t.printMilitary();

   cout << "\nThe initial standar time is ";
   t.printStandard();


   t.setTime(13, 27, 6);
   cout << "\n\nMilitary time after seTime is ";
   t.printMilitary();

   cout << "\nStandar time after setTime is ";
   t.printStandard();


   t.setTime(99, 99, 99);
   cout << "\n\nAfter attempting invalid settings:\n" << "Military Time: ";
   t.printMilitary();

   cout << "\Standard time: ";
   t.printStandard();

   cout << endl;
   return 0;
}



Saludos, Sancho.Mazorka!    :¬¬
Ganador Xeon Web Server ! ! !    Sancho.Mazorka :D
http://foro.elhacker.net/index.php/topic,171903.75.html



Eternal Idol

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/
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón

Sancho.Mazorka

Ganador Xeon Web Server ! ! !    Sancho.Mazorka :D
http://foro.elhacker.net/index.php/topic,171903.75.html



Eternal Idol

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón