Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
"class::identifier" : nieprawidłowe użycie deklaracji w zakresie nieklasowym
Uwagi
Użyto niepoprawnie deklaracji using .
Ten błąd można wygenerować w wyniku pracy zgodności kompilatora, która została wykonana dla programu Visual Studio 2005: nie jest już ważne, aby deklaracja using typu zagnieżdżonego była wymagana; należy jawnie zakwalifikować każde odwołanie do typu zagnieżdżonego, umieścić typ w przestrzeni nazw lub utworzyć definicję typu.
Przykłady
Poniższy przykład generuje kod 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;
}
Jeśli używasz using słowa kluczowego z składową klasy, język C++ wymaga zdefiniowania tego elementu członkowskiego wewnątrz innej klasy (klasy pochodnej).
Poniższy przykład generuje kod 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;
};