Qual'è la differenza tra un namespace e un include e quando vanno usati?
Per esempio, la cout è dichiarata in iostream, quindi faccio
#include <iostream>
ma perchè devo aggiungere anche using namespace std? che altro c'è in std che mi manca??
grazie![]()
Qual'è la differenza tra un namespace e un include e quando vanno usati?
Per esempio, la cout è dichiarata in iostream, quindi faccio
#include <iostream>
ma perchè devo aggiungere anche using namespace std? che altro c'è in std che mi manca??
grazie![]()
Std è un namespace, una nuova funzionalità del C++ inserita dall'ANSI.
Consente praticamente di fare una gerarchia delle tue funzioni.
Mettiamo caso che hai creato una funzione che si chiama Ciao.
Poi utilizzi una mia libreria che, guarda caso, contiene un'altra funzione, che si chiama proprio Ciao.
Le due funzioni sono uguali, e ciò potrebbe essere fastidioso no?
Dunque ci sono i namespace.
Se tu fai il namespace MioNamespace e ci inserisci la funzione Ciao, e io faccio il VinNamespace e ci metto la mia funzione Ciao, non vi saranno piu' conflitti, in quanto, se vuoi la tua funzione, farai, se invece vuoi usare la miacodice:MioNamespace::Ciao(), e in questo modo andrà tutto ok.codice:VinNamespace::Ciao()
Per creare un namespace basta farecodice:namespace MioNamespace {//tue funzioni}
"Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)
"Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)
http://xvincentx.netsons.org/programBlog
ma allora se ciao() è dichiarata nel namespace, perchè devo anche fare #include <libreriaconciao> ??
Se tu hai due file
Ciao.h
e Main.cpp
Nel main non hai la dichiarazione della funzione ciao, quindi il compilatoren non la conosce.
Come fai a dirgli "Ehi compilatore guarda che io devo usare questa funzione che sta la dentro"?
Utilizzando l'include.
"Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)
"Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)
http://xvincentx.netsons.org/programBlog