|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Dec 2007
Messaggi: 47
|
[c++] primo scoglio con la programmazione
Salve a tutti del forum.
Sono alle prime armi con la programmazione in c++ e mi sono ritrovato dfronte a "problemi" che non riesco a superare. Venamo al dunque: ho scritto un piccolo progetto in ambiante Windows 2000 con Dev-Cpp composto da tre file: [main.cpp] #include <iostream> #include "time.h" using namespace std; int main(int argc, char *argv[]) { Time t; // instantiate object t of class time cout << "The initial military time is "; t.printMilitary(); cout << "\nThe initial standard time is "; t.printStandard(); t.setTime( 13, 27, 6 ); cout << "\n\nMilitary time after setTime is "; system("PAUSE"); return EXIT_SUCCESS; } [time.h] class Time { public: Time(); // constructor void setTime( int, int, int ); // set hour, minute, second void printMilitary(); // print military time format void printStandard(); // print standard time format private: int hour; // 0 - 23 int minute; // 0 - 59 int second; // 0 - 59 }; [time.cpp] #include <iostream> #include "time.h" // Time constructor initializes each data member to zero. // Ensures all Time objects start in a consistent state. Time::Time() { hour = minute = second = 0; } void Time::setTime( int h, int m, int s ) { hour = ( h >= 0 && h < 24 ) ? h : 0; minute = ( m >= 0 && m < 60 ) ? m : 0; second = ( s >= 0 && s < 60 ) ? s : 0; } // Print Time in military format void Time: { cout << ( hour < 10 ? "0" : "" ) << hour; cout << ":" << ( minute < 10 ? "0" : "" ); cout << minute; } // Print time in standard format void Time: { cout << ( ( hour == 0 || hour == 12 ) ? 12 : hour % 12 ); cout << ":" << ( minute < 10 ? "0" : "" ) << minute; cout << ":" << ( second < 10 ? "0" : "" ) << second; cout << ( hour < 12 ? " AM" : " PM" ); } Adesso vado a compilare e mi viene segnalato questo errore: In member function `void Time: (Each undeclared identifier is reported only once for each function it appears in.) In member function `void Time: [Build Error] [time.o] Error 1 NB: se inserisco in un'unico file tutto il progetto il compilatore non mi da nessun errore e crea l'eseguibile. COme posso risolvere il problema?? Grazie mille Ultima modifica di marco.inblu : 13-12-2007 alle 17:25. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Ti manca il namespace. In time.cpp includi:
Codice:
using namespace std; |
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Dec 2007
Messaggi: 47
|
Cavolo!!!
Funziona!!! Ti ringrazio per la prontezza con cui mi hai risposto. Era già un pò che ci sbattevo la testa. GRAZIE MILLE. .... Vorrei approfondire questa cosa: perchè mettere questa stringa? using namespace std; A cosa serve? Ciao e ancora grazie |
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
Comunque, in C++ esistono i namespace che sono dei "contenitori" il cui scopo principale è evitare conflitti nei nomi di classi e funzioni. Tutta la libreria standard è racchiusa nel namespace std. Senza la specifica using tutte le volte che richiami una classe della libreria devi preporre al nome std:: nel tuo caso avresti dovuto scrivere tutte le volte std::cout. |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:30.




















