Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [C++] Chiarimenti su namespaces e #include

    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

  2. #2
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,565
    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
    codice:
    MioNamespace::Ciao()
    , se invece vuoi usare la mia
    codice:
    VinNamespace::Ciao()
    , e in questo modo andrà tutto ok.
    Per creare un namespace basta fare
    codice:
    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

  3. #3
    ma allora se ciao() è dichiarata nel namespace, perchè devo anche fare #include <libreriaconciao> ??

  4. #4
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,565
    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

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.