Torna indietro   Hardware Upgrade Forum > Software > Programmazione

WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà
Un mondo affollato e vivo, personaggi destinati a sparire a fine test e nessuno a inseguire l'oggetto giusto. Beta e stress test di World of Warcraft: Forever hanno fatto emergere un roleplay spontaneo, tra danze a Goldshire e code ordinate ai PNG
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA
In tre giorni a Las Vegas Oracle ha presentato agenti che eseguono il lavoro, l'alleanza con OpenAI e un cloud aperto agli acceleratori di tutti. Ma i clienti europei chiedono garanzie prima ancora delle funzionalità
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort
Fino a 740 km WLTP con la batteria da 97,2 kWh, sospensioni che leggono la strada con una telecamera e un abitacolo da salotto parigino. La nuova DS N°7 raccoglie l'eredità della DS 7 e la porta, per la prima volta, nel mondo 100% elettrico. Ecco come è fatta, cosa offre e quanto costa.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 13-12-2007, 17:22   #1
marco.inblu
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:rintMilitary()
{
cout << ( hour < 10 ? "0" : "" ) << hour;
cout << ":" << ( minute < 10 ? "0" : "" );
cout << minute;
}

// Print time in standard format
void Time:rintStandard()
{
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:rintMilitary()': `cout' undeclared (first use this function)
(Each undeclared identifier is reported only once for each function it appears in.)

In member function `void Time:rintStandard()': `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

Ultima modifica di marco.inblu : 13-12-2007 alle 17:25.
marco.inblu è offline   Rispondi citando il messaggio o parte di esso
Old 13-12-2007, 17:32   #2
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Ti manca il namespace. In time.cpp includi:
Codice:
using namespace std;
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 13-12-2007, 17:37   #3
marco.inblu
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
marco.inblu è offline   Rispondi citando il messaggio o parte di esso
Old 13-12-2007, 20:50   #4
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da marco.inblu Guarda i messaggi
Vorrei approfondire questa cosa: perchè mettere questa stringa?

using namespace std;

A cosa serve?

Ciao e ancora grazie
Se fai questa domanda forse ti servirebbe una lettura di un buon libro sul C++

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.
tomminno è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà WoW Forever: la beta è stato uno dei mome...
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA Oracle AI World 2026: in Europa prima la sovrani...
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort DS N°7 E-Tense: il SUV premium made in Melfi...
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più Recensione Samsung Galaxy Tab S12 Ultra: non chi...
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura) Hyundai IONIQ 5 N, l'elettrica che finge di esse...
11 prezzi imperdibili in Amazon: non sol...
Giù i prezzi di Xiaomi 17T e Xiao...
Una tassa di 5,5 centesimi su ogni gigab...
Vuoi clonare un videogioco con l'IA? Cla...
Furto da 6,3 miliardi di dollari, Binanc...
Gli USA dipendono dai robot stranieri: T...
Volkswagen non ha più soldi per l...
Telescopio spaziale Hubble: la NASA cerc...
Più sottile e potente: le nuove i...
Il JPL estende la vita operativa della s...
DAZN Full è in offerta: tutta la ...
GTA 6 su PC potrebbe arrivare prima del ...
Da zero al tracciato in secondi: LibreCo...
Il regista Rian Johnson lancia a 12,99 d...
Microsoft stravolge l'app Sicurezza di W...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 10:52.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v