Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
'class::identifier' : není platná deklarace using v oboru mimo třídu.
Poznámky
Použili jste nesprávně deklaraci using .
Tato chyba se dá vygenerovat v důsledku práce v souladu kompilátoru, která byla provedena pro Visual Studio 2005: Už není platná mít using deklaraci pro vnořený typ. Každý odkaz, který provedete, musíte explicitně kvalifikovat na vnořený typ, vložit typ do oboru názvů nebo vytvořit typedef.
Příklady
Následující příklad vygeneruje 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;
}
Pokud použijete using klíčové slovo se členem třídy, jazyk C++ vyžaduje, abyste tento člen definovali uvnitř jiné třídy (odvozené třídy).
Následující příklad vygeneruje 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;
};