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