Problema del compilatore
ragazzi ho un problema con il compilatore, sto facendo una prova con le classi, mondo che mi si è appena aperto e sto scoprendo:
questo è il main:
questa è la dichiarazione della classe:
questa è l'implementazione della classe time:
mi da il seguente errore:
questo è il main:
#include "time.h" #include <iostream> using namespace std; int main() { time t; t.setTime(2,3,2); t.print(); return 0; }
questa è la dichiarazione della classe:
#ifndef TIME_H_ #define TIME_H_ class time { public: time(); void setTime(int, int, int); void print(); private: int hour; int minute; int second; }; #endif /* TIME_H_ */
questa è l'implementazione della classe time:
#include "time.h" #include <iostream> using namespace std; time::time() { hour = minute = second = 0; } void time::setTime(int a, int b, int c) { hour = a; minute = b; second = c; } void time::print() { cout << hour << ":" << minute << ":" << second << endl; }
mi da il seguente errore:
**** Build of configuration Debug for project time **** make all Building file: ../main.cpp Invoking: GCC C++ Compiler g++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"main.d" -MT"main.d" -o"main.o" "../main.cpp" ../main.cpp: In function ‘int main()’: ../main.cpp:8: error: expected ‘;’ before ‘t’ ../main.cpp:8: warning: statement is a reference, not call, to function ‘time’ ../main.cpp:8: warning: statement has no effect ../main.cpp:10: error: ‘t’ was not declared in this scope make: *** [main.o] Errore 1
Risposte
Ho letto il tuo programma, e ho notato un semplice conflitto di nomi.
Infatti, in c++, l' hader time.h esiste già: http://www.cplusplus.com/reference/clibrary/ctime/
Per risolvere il problema, basta cambiare nome alla classe.
Infatti, in c++, l' hader time.h esiste già: http://www.cplusplus.com/reference/clibrary/ctime/
Per risolvere il problema, basta cambiare nome alla classe.
ma io non ho incluso la libreria ....come fanno ad entrare in conflitto???
"Riuzaki":
ma io non ho incluso la libreria....come fanno ad entrare in conflitto???
Io non mi riferivo alla libreria ctime, ma all' hader time.h!
Per rendertene conto, osserva gli esempi riportati nell sito.
Ahi cambiato il nome alla tua classe e all' hader?
si si funziona, ti ringrazio era un bug sottilissimo da individuare.........
Di nulla!
