Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 18 su 18
  1. #11
    Utente di HTML.it L'avatar di kuarl
    Registrato dal
    Oct 2001
    Messaggi
    1,093
    esistono in java?

  2. #12
    Utente di HTML.it L'avatar di Zalex
    Registrato dal
    Aug 2001
    Messaggi
    357
    Originariamente inviato da r0x
    Senza giri di parole, in C++ un namespace e` uno scope con nome.
    e ora vai a spiegare cos'e' uno scope con nome......e siamo sempre li'

  3. #13
    Originariamente inviato da kuarl
    esistono in java?
    Se non ho capito male sono l'equivalente del package in java???? :master:
    Lang=Java
    Ambiente = Eclipse forever
    Ubuntu & Win XP Pro

  4. #14
    Zalex, non ci sono solo funzioni o classi in un namespace ..

  5. #15
    Utente di HTML.it L'avatar di Zalex
    Registrato dal
    Aug 2001
    Messaggi
    357
    Originariamente inviato da r0x
    Zalex, non ci sono solo funzioni o classi in un namespace ..
    ok

  6. #16
    es ho due file:
    codice:
    //file f1.cpp
    #include <iostream.h>
    void saluta(){
      cout << "ciao" ;
    }
    codice:
    #include <iostream.h>
    //file f2.cpp
    void saluta(){
      cout << "buonasera" ;
    }
    (dopo avere incluso <iostream.h> i due file f1.cpp e f2.cpp contengono ognuno una funzione che si chiama saluta(), però quella del file f1 visualizza su video la scritta "ciao" mentre la funz del file f2 visualizza la scritta "buonasera".
    ora ammettiamo che ci sia un terzo file che richiama le funzioni dei file f1.cpp e del file f2.cpp:

    codice:
    //file prog.cpp
    #include "f1.cpp"
    #include "f2.cpp"
    
    void main()
    {
      saluta()
      saluta()
    }
    questo file include i file f1.cpp e f2.cpp e poi usa le funzioni definite in questi due file.
    l'intenzione sarebbe quella di scrivere "ciao" con la chiamata della funzione saluta() definita nel file f1.cpp e poi scrivere "buonasera" con la chiamata della funzione dell'altro file, ma siccome il nome è identico nei due casi, si ha una situazione di ambiguità e quindi di errore. la soluzione sono i namespace.
    con i name space:

    codice:
    //file f1.cpp
    #include <iostream.h>
    namespace name1
    {
       void saluta()
       {
         cout "ciao" ;
       }
    }
    
    //file f2.cpp
    #include <iostream.h>
    namespace name2
    {
       void saluta()
       {
          cout << "buonalera" ;
       }
    }

    codice:
    #include "f1.cpp"
    #include "f2.cpp"
    
    void main()
    {
      nome1::saluta() ;
      nome2::saluta() ;
    }
    In questo caso la prima funzione chiamata è quella appartenente al namespace nome1, la seconda è quella appartenente al namespace nome2: senza rischio di ambiguità. l'effetto sarà quello di stampare sullo schermo prima la scritta "ciao" poi la scritta "buonasera".

  7. #17
    naturalmente il tutto potrebbe essere contenuto in un unico file:

    codice:
    #include <iostream.h>
    
    namespace name1
    {
       void saluta()
       {
         cout "ciao" ;
       }
    }
    
    
    namespace name2
    {
       void saluta()
       {
          cout << "buonalera" ;
       }
    }
    
    
    void main()
    {
      nome1::saluta() ;
      nome2::saluta() ;
    }
    ma l'utilità dei namespace è proprio quando ci sono più file ognuno dei quali è scritto da un programmatore diverso dall'altro

  8. #18
    Ora vi siete fissati con le collisioni .. I namespaces sono stati inventati per facilitare la modularizzazione, non (solo) per evitare le collisioni.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.