Ciao
Come hai detto tu, CUBO lo definisci nel file cube.h, quindi per poterlo usare altrove dovrai includere cube.h, non cube.cpp (e comunque i file .h dovrebbero contenere solo le dichiarazioni e i .cpp le definizioni, pertanto bisognerebbe includre sempre e solo file .h)
In questo modo comunque otterresti definizioni doppie della variabile CUBE: infatti verrebbe ridefinita ogni volta che includi l'header (ecco perchè i .h dovrebbero contenere solo le dichiarazioni)
Adesso, per riolvere hai due opportunità: se CUBO ti serve solo dal file prova.cpp, puoi definirlo direttamente lì invece che in cube.h; altrimenti per poterlo usare ovunque puoi dichiararlo extern e definirlo nel file cube.cpp (che non devi includere, è un .cpp
), in questo modo:
//cube.h:
class cube
{
public:
void drawcube();
};
extern cube CUBO;
//cube.cpp
#include "cube.h"
void cube::drawcube()
{
//...
}
cube CUBO;
//prova.cpp
#include "cube.h"
void test()
{
CUBO.drawcube();
}
Luca