View Full Version : Problema VisualC++.NET 2003
ho di recente cominciato a fare qualche programma in c++ invece che in c...sto usando IDE in oggetto ma anche se scrivo il semplicissimo
#include <iostream>
void main() {
cout << "Ciao Mondo!";
return;
}
il compilatore mi da un errore, mi dice ERROR C2065: "cout" identificatore non dichiarato :muro:
ma perchè???
ho controllato nella libreria e cout è presente :cry: che faccio, qualcuno ha il mio stesso problema???
prima del main aggiungi:
using namespace std;
cout è un oggetto definito nel namespace std, cosi come tutti gli oggetti e le classi della libreria standard
alternativamente specifica il namespace ogni volta che usi cout:
std::cout << "ciao";
ma è piu scomodo.
grazie ;) appena posso provo
edit
provato, funziona ora, grazie 1000
ps mi sai dire perchè con alcuni compilatori è necessario mentre con altri no??? :confused:
Originariamente inviato da sirus
ps mi sai dire perchè con alcuni compilatori è necessario mentre con altri no??? :confused:
I compilatori per i quali funziona senza darti warning non sono aderenti allo standard....
beh mi sembra che ne vecchio VC6.0 non ci fosse bisogno di metterlo :confused: però non vorrei dire una ca22ata
Originariamente inviato da sirus
beh mi sembra che ne vecchio VC6.0 non ci fosse bisogno di metterlo :confused: però non vorrei dire una ca22ata
forse perkè usavi <iostream.h> al posto di <iostream>: in iostream.h viene automaticametne dichiarato
using namespace std;
(annullando di fatti l'utilità del namespace)
e se modificassi iostream e mettessi la stringa using namespce std; ???
Si possono creare dei casini a causa di conflitti di nomi in altri file che importano iostream. Tanto per capire il significato della cosa, dentro iostream è definito l'oggetto cout all'interno del namespace std. Se te fai un programma in cui definisci un tuo oggetto cout, ad esempio:
int cout;
si avrebbe un conflitto di nomi se non esistesse il meccanisco dei namespace: poiche il cout usato per output è dichiarato nel namespace std, per far riferimento ad esso devi specificare
std::cout
Questo ti permette di dichiarare una tua variable cout senza avere conflitti di nome:
se scrivi cout fai riferimento alla tua variabile;
se scrivi std::cout fairiferimento all'oggeto della libreria.
Se dichiari:
using namespace std;
stai dicendo al compilatore che farai a meno di specificare std::, il che ti permette di scrivere cout e non std::cout per riferire l'oggetto di iostream; ma in questo caso non puoi definire una tua nuova variabile cout perche sarebbe in conflitto con quella gia definita in iostream.
Chiunque importi iostream sa che le sue definizioni sono chiuse nel namespace std, quindi può aver dichiarato delle funzioni o delle variabili che hanno lo stesso nome di oggetti definiti in iostream, il che non è un problema perke appunto per far riferimento ad essi bisogna anteporre std::. Se tu modifichi iostream inmodo tale che dichiari l'uso del namespace std possono quindi crearsi dei conflitti di nomi e avere errori in compilazione in altri file che importano iostream.
Tieni presente che in std sono racchiuse tutte le definizioni della libreria standard, comprese le definizioni di tipo (classi), e funzioni.
Originariamente inviato da sirus
beh mi sembra che ne vecchio VC6.0 non ci fosse bisogno di metterlo :confused: però non vorrei dire una ca22ata
Il VC++ 6 non era aderente allo standard...
Originariamente inviato da cionci
Il VC++ 6 non era aderente allo standard...
grazie per la precisazione ;)
GiulioCesare
02-03-2005, 18:15
Ma in Visual C++ Net si possono mettere gli oggetti sul forum e poi programmarli come si fa in Vb? Sono due ore che sto cercando di capire se è possibile farlo :muro:
Originariamente inviato da GiulioCesare
Ma in Visual C++ Net si possono mettere gli oggetti sul forum e poi programmarli come si fa in Vb? Sono due ore che sto cercando di capire se è possibile farlo :muro:
se crei un'applicazione MFC puoi farlo (non è proprio come VB...)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.