PDA

Visualizza la versione completa : [C++] namespace


Dark Bard
15-05-2004, 16:42
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

anx721
15-05-2004, 16:47
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)

Dark Bard
15-05-2004, 21:10
ho provato, ma il problema non è questo. Non mi vede Y neanche nel namespace X

Dark Bard
15-05-2004, 22:23
Non so se può interessare a qualcuno, ma ho risolto così:

globals.h


namespace X{
class Y;
class Z;
}


A.h


#include "globals.h"

namespace X{
class Y{
//...
};
}


B.h


#include "globals.h"

namespace X{
class Z{
Y my_y;
//..
};
}

Fox82
17-05-2004, 10:08
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.

:ciauz:

anx721
17-05-2004, 14:36
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.

:ciauz:

si vero

Loading