glug: problema con compilatore g++/gcc
asettico
asettico@rossomaltese.it
Dom 14 Ago 2005 18:41:03 CEST
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
-------------- parte successiva --------------
Un allegato non testuale č stato rimosso....
Nome: signature.asc
Tipo: application/pgp-signature
Dimensione: 155 bytes
Descrizione: OpenPGP digital signature
Url: http://lists.linux.it/pipermail/glug/attachments/20050814/c30b8805/signature.pgp
Maggiori informazioni sulla lista
glug