Visualizzazione dei risultati da 1 a 5 su 5

Discussione: [?] namespace

  1. #1

    namespace

    Salve a tutti,
    ho letto del "namespace" ma non ho capito tanto! Qualcuno mi puo' aiutare a capire a cosa serve? Quando si usa?


    Grazie
    "Considerate la vostra semenza:
    fatti non foste a viver come bruti,
    ma per seguir virtute e canoscenza''."
    Dante Alighieri

  2. #2
    namespace?!? non è .NET?
    Per .NET c'è un subforum.

    ..::200 post il 1 settembre 2004::..
    ..::100 13/07/2004::..
    ..): Web Site (pazienza però) ..
    VASCO castiga chi non lecca la FIGA

  3. #3
    ricordati sempre di mettere il linguaggio nel titolo
    Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te

  4. #4
    namespace?!? non è .NET?
    Per .NET c'è un subforum.
    No i namespace ci sono anche in C++ (in .NET non lo so ) t posto direttamente un tratto di testo non mio che lo spiega abbastanza chiaramente così non mi spreco ad inventarmi esempi :
    Questo concetto è la risposta al comune problema delle definizioni multiple. Immagina di avere due file header che descrivono due tipi differenti, ma che hanno lo stesso nome. Come facciamo ad utilizzarli entrambi ?
    La risposta in C++ sta nei namespace. Si definiscono tipi e funzioni in un namespace e dopo li si usano. I namespace sono definiti usando la parola riservata namespace, seguita da un identificatore. Ma vediamo subito un esempio...


    codice:
    namespace Geometry
    {
      struct Vector
      {
        float x, y;
      };
    
      float Norm (Vector v);
    }
    In questo esempio, quello che c'è dentro le {} è normale codice C++. Per usare questo codice, devi specificare al compilatore che adesso stai per usare il namespace geometry. Ci sono due modi di fare questo: specificando per una singola variabile il suo namespace (la sintassi è namespace::variabile) o usando la sequenza di parole riservate using namespace.

    codice:
    // Esempio con ::
    void Foo1()
    {
      Geometry::Vector v = {1.0, 2.0};
      float f = Geometry::Norm (v);
    } 
    // Con l'uso delle parole chiave "using namespace"
    using namespace Geometry;
    void Foo2()
    {
      Vector v = {1.0, 2.0};
      float f = Norm (v);
    }
    Quando usi la sequenza using namespace, potresti avere dei problemi se due o più namespace definiscono lo stesso tipo. Se c'è del codice ambiguo, il compilatore non lo compilerà. Per esempio...

    codice:
    namespace Geometry
    {
      struct Vector
      {
        float x, y;
      };
    }
    
    namespace Transport
    {
      struct Vector
      {
        float speed;
      };
    }
    using namespace Geometry;
    using namespace Transport;
    
    void foo()
    {
      Vector v0;              // Errore: ambiguità
      Geometry::Vector v1;    // OK
      Transport::Vector v2;   // OK
    }
    Mi sembra piuttosto chiaro,ciao
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  5. #5
    Grazie
    "Considerate la vostra semenza:
    fatti non foste a viver come bruti,
    ma per seguir virtute e canoscenza''."
    Dante Alighieri

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.