Visualizzazione dei risultati da 1 a 6 su 6

Discussione: [C++] namespace

  1. #1

    [C++] namespace

    Ciao a tutti; ho due file (A e B) contenenti entrambi la definizione di una namespace; so che, in teoria, definire un namespace già definito implica l'aggiunta delle informazioni al namespace iniziale.

    nel file A ho:

    namespace X{
    class Y{};
    }

    nel file B ho:
    #include "A"

    namespace X{
    class WW{
    Y my_y;
    };
    }

    il compilatore (VC++ 6.0) mi da un errore nel file B dicendomi che Y non è un tipo di dato esistente ... comq mai?? Y fa parte del namespace X ed è definito già ...

    ciao
    eXtending-Php.net coming soon ...

  2. #2
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Prova con:

    X::Y my_y;

    invece di

    Y my_y;


    oppure aggiungi:

    using namespace X

    nel file B

    (non so se e questo il problema)

  3. #3
    ho provato, ma il problema non è questo. Non mi vede Y neanche nel namespace X
    eXtending-Php.net coming soon ...

  4. #4
    Non so se può interessare a qualcuno, ma ho risolto così:

    globals.h
    codice:
    namespace X{
      class Y;
      class Z;
    }
    A.h
    codice:
    #include "globals.h"
    
    namespace X{
     class Y{
      //...
     };
    }
    B.h
    codice:
    #include "globals.h"
    
    namespace X{
      class Z{
       Y my_y;
       //..
      };
    }
    eXtending-Php.net coming soon ...

  5. #5
    Utente di HTML.it L'avatar di Fox82
    Registrato dal
    Feb 2002
    Messaggi
    459
    Originariamente inviato da anx721

    oppure aggiungi:

    using namespace X

    nel file B

    (non so se e questo il problema) [/B]
    Non è una buona idea aggiungere la direttiva using dentro un file header (immagino che il file B lo fosse), in quanto elimineresti lo scopo principale per cui i namespace sono stati ideati, cioè risolvere i conflitti dei nomi.

    Linux user number 403381

    Stop TCPA!

  6. #6
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Originariamente inviato da Fox82
    Non è una buona idea aggiungere la direttiva using dentro un file header (immagino che il file B lo fosse), in quanto elimineresti lo scopo principale per cui i namespace sono stati ideati, cioè risolvere i conflitti dei nomi.

    si vero

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