marco.inblu
13-12-2007, 16:22
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::printMilitary()
{
cout << ( hour < 10 ? "0" : "" ) << hour;
cout << ":" << ( minute < 10 ? "0" : "" );
cout << minute;
}
// Print time in standard format
void Time::printStandard()
{
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::printMilitary()': `cout' undeclared (first use this function)
(Each undeclared identifier is reported only once for each function it appears in.)
In member function `void Time::printStandard()': `cout' undeclared (first use this function)
[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
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::printMilitary()
{
cout << ( hour < 10 ? "0" : "" ) << hour;
cout << ":" << ( minute < 10 ? "0" : "" );
cout << minute;
}
// Print time in standard format
void Time::printStandard()
{
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::printMilitary()': `cout' undeclared (first use this function)
(Each undeclared identifier is reported only once for each function it appears in.)
In member function `void Time::printStandard()': `cout' undeclared (first use this function)
[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