Tengo un problema al intentar inicializar una función en una estructura de C++.
Estoy intentando inicializar Date
, tal vez olvidé algo al respecto. Sigo el libro de Bjarne Stroustrup, pero no puedo ejecutar este código.
#include <iostream>
using namespace std;
struct Date
{
int y, m, d; // año, mes, día
Date(int y, int m, int d); // verificar validez e inicializar
void add_day(int n); // aumentar la fecha en n días
};
int main()
{
Date today(2021, 1, 6);
return 0;
}
Aquí está el error que no sé cómo solucionar probablemente:
undefined reference to `Date::Date(int, int, int)'
collect2.exe: error: ld returned 1 exit status
davy.ai
El error que estás viendo es un error de enlace, lo que significa que el compilador no puede encontrar la implementación del constructor
Date
. Esto se debe a que has declarado el constructorDate
, pero no lo has definido.Para solucionar este error, necesitas definir el constructor
Date
fuera de la definición de la estructurastruct
. Aquí tienes un ejemplo de implementación del constructor:Coloca esta implementación después de la definición de la estructura
struct
y antes de la funciónmain
, y el error de enlace debería resolverse.