Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
'class ::identifier' : non une déclaration d’utilisation valide au niveau de l’étendue non classe
Remarques
Vous avez utilisé une déclaration using de manière incorrecte.
Cette erreur peut être générée suite au travail de conformité du compilateur qui a été effectué pour Visual Studio 2005 : il n’est plus valide pour avoir une using déclaration à un type imbriqué ; vous devez qualifier explicitement chaque référence que vous faites au type imbriqué, placer le type dans un espace de noms ou créer un typedef.
Exemples
L’exemple suivant génère l’erreur 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;
}
Si vous utilisez le using mot clé avec un membre de classe, C++ vous oblige à définir ce membre à l’intérieur d’une autre classe (une classe dérivée).
L’exemple suivant génère l’erreur 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;
};