Tengo algo oxidado el c++. estaba probando y alcinando de que un pequeño programa no funcionaba.
Os pongo aquí la estructura. Es tan ridículamente sencilla que estoy empezando a pensar que hay detalles que estoy olvidando. ¿Tenéis idea? Tan fácil que no veo qué demonios pasa:
main.cpp
Código:
prueba.h#include <stdlib.h> #include "prueba.h"; int main(int argc, char** argv) { prueba *hola = new prueba(); hola->escribe(); return 0; }
Código:
prueba.cpp#ifndef PRUEBA_H_INCLUDED #define PRUEBA_H_INCLUDED class prueba{ public: prueba(); void escribe(); }; #endif // PRUEBA_H_INCLUDED
Código:
#include "prueba.h"; #include <iostream> prueba::prueba(){} void prueba::escribe() { cout<<"HolaMundo"<<endl; }
Sinceramente, es tan sencillo que no puedo comprender qué pasa. Alguna comilla? la forma de incluir?. Están todos en la misma carpeta.
Me devuelve un "UNDEFINED REFERENCE" a la funcion constructora y escribe llamadas en el main.
Y además si pongo la constructora en el prueba.h, sí que funciona. así que es algún problema de include, como dicta el título.
¿¿¿Qué demonios es???