glug: problema con compilatore g++/gcc

vecchipc vecchipc@katamail.com
Dom 14 Ago 2005 23:32:10 CEST


On Sun, 14 Aug 2005 18:41:03 +0200
asettico <asettico@rossomaltese.it> wrote:

> vecchipc wrote:
> > Ho provato a compilare un semplicissimo listato c++ di prova :
> > 
> > #include<iostream>
> > 
> > int main() {
> >    cout<<"ciao pippo!"<<'\n';
> >    return 0;
> > }
> > *****
> > g++ prova.cpp
> > ***
> > 
> > e mi dā questo risultato :
> > 
> > bash-2.05b# g++ prova.cpp
> > prova.cpp: In function `int main()':
> > prova.cpp:5: error: `cout' undeclared (first use this function)
> > prova.cpp:5: error: (Each undeclared identifier is reported only once for each
> >    function it appears in.)
> 
> Tutti i simboli (oggetti, classi, ecc.) della libreria standard di C++ sono 
> definiti all'interno del *namespace* std.
> Quindi hai 2 possibilitā:
> * usi std::cout (se viene riferito una sola volta);
> * subito dopo l'include aggiungi using namespace std (se usi diverse volte 
> simboli della libreria standard);
> 
> Il namespace č stato introdotto nel C++ ANSI allo scopo di evitare 
> collisione tra nomi di oggetti di librerie diverse.
> Tanto per fare un esempio, immagina se 2 sviluppatori implementassero 1 
> libreria di classi ciascuno ed entrambi definissero la classe Frame, senza 
> che necessariamente debbano fare la stessa cosa (pensa al un frame di una 
> finestra grafica e ad un frame TCP/IP). Senza namespace ci sarebbe una 
> collisione nel nome delle 2 classi (di quale libreria?). Se invece ognuno 
> definisse il proprio namespace, l'ambiguitā sparirebbe (lib1::Frame e 
> lib2::Frame sono diversi).
> Ovviamente, se nello stesso file specifichi
> 	using namespace lib1;
> 	using namespace lib2;
> siamo daccapo!
> Comportamento analogo in Java ce l'hai con le parole chiavi package/import.
> HTH
> -- 
>   ,= ,-_-. =.  asettico ~ [ http://rossomaltese.it/   ]
> ((_/)o o(\_)) OpenPGP ~~ [ 1024D/1CB926BA 2003-11-29 ]
>   `-'(. .)`-'
>       \_/      http://keyserver.linux.it/pks/lookup?exact=on&search=asettico
> 
Veramente tante grazie Asettico!! :-D
L'ho capito qualche ora dopo aprendo un esempio di kdevelop:-D
appunto con "using namespace ..." :-D
grazie di nuovo  e buon ferragosto 
Luigi


Maggiori informazioni sulla lista glug