Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Katniss en 17 Febrero 2016, 10:25 am



Título: Constructor por defecto con la fecha actual
Publicado por: Katniss en 17 Febrero 2016, 10:25 am
Hola chicos, soy nuevo en la comunidad y tengo un problema, me han pedido que cree una clase en la que el constructor por defecto sea la fecha actual (es decir, la fecha del pc en el momento de compilar el programa) y sé que para ello necesito la biblioteca time.h, pero no sé cómo hacerlo para el que constructor tenga por defecto ese dato...

¿Me podéis ayudar?

Gracias de antemano ;) :silbar:


Título: Re: Constructor por defecto con la fecha actual
Publicado por: ivancea96 en 17 Febrero 2016, 15:58 pm
Código
  1. class X{
  2.    X(int param1, time_t t = time(0)){}
  3. };


Título: Re: Constructor por defecto con la fecha actual
Publicado por: MAFUS en 17 Febrero 2016, 16:22 pm
Lo que está buscando es la hora de compilación y eso se hace con la macro __TIME__, que se expande a una cadena en formato HH:MM:SS.


Título: Re: Constructor por defecto con la fecha actual
Publicado por: Katniss en 23 Febrero 2016, 16:32 pm
Código
  1. class X{
  2.    X(int param1, time_t t = time(0)){}
  3. };

¿Pero qué se supone que tengo que pasar en param1 cuando llame al constructor?


Título: Re: Constructor por defecto con la fecha actual
Publicado por: ivancea96 en 23 Febrero 2016, 18:19 pm
¿Pero qué se supone que tengo que pasar en param1 cuando llame al constructor?

No, param1 era un parámetro cualquiera que tu quieras poner. Solo quería expresar, que los parámetros con un valor por defecto se colocan al final. Así, esa función la podrías llamar de 2 maneras:
Código
  1. X x1(12345),
  2.  x2(12345, time(0)+3600); // 1 hora más tarde