Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Aggiornamento: novembre 2007
Messaggio di errore
'classe::identificatore': dichiarazione using non valida nell'ambito di tipo non classe
'class::identifier' : not a valid using-declaration at non-class scope
È stata utilizzata una dichiarazione using in modo non corretto.
Esempio
Questo errore può essere generato come risultato delle operazioni di conformità eseguite per Visual C++ 2005: non è più valido utilizzare una dichiarazione using per un tipo nidificato, ma è necessario qualificare in modo esplicito ogni riferimento al tipo nidificato, inserire il tipo in uno spazio dei nomi o creare un typedef. Per ulteriori informazioni, vedere Ultime modifiche al compilatore Visual C++ 2005.
Nell'esempio seguente viene generato l'errore C2885:
// C2885.cpp
namespace MyNamespace {
class X1 {};
}
struct MyStruct {
struct X1 {
int i;
};
};
int main () {
using MyStruct::X1; // C2885
// OK
using MyNamespace::X1;
X1 myX1;
MyStruct::X1 X12;
typedef MyStruct::X1 abc;
abc X13;
X13.i = 9;
}
Se si utilizza la parola chiave using con un membro di classe, in C++ questo membro dovrà essere definito all'interno di un'altra classe, ovvero una classe derivata.
Nell'esempio seguente viene generato l'errore C2885:
// C2885_b.cpp
// compile with: /c
class A {
public:
int i;
};
void z() {
using A::i; // C2885 not in a class
}
class B : public A {
public:
using A::i;
};