Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
'class::identifier' : sınıf dışı kapsamda geçerli bir using-declaration değil
Açıklamalar
Bir using bildirimini yanlış kullandınız.
Bu hata, Visual Studio 2005 için yapılan derleyici uyumluluğu çalışmasının sonucu olarak oluşturulabilir: iç içe bir türe bildirim almak using artık geçerli değildir; iç içe türüne yaptığınız her başvuruyu açıkça nitelemeli, türü bir ad alanına yerleştirmeli veya bir tür tanımı oluşturmalısınız.
Örnekler
Aşağıdaki örnek C2885 oluşturur.
// 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;
}
Anahtar sözcüğünü using bir sınıf üyesiyle kullanırsanız, C++ bu üyeyi başka bir sınıf içinde (türetilmiş bir sınıf) tanımlamanızı gerektirir.
Aşağıdaki örnek C2885 oluşturur.
// 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;
};