共用方式為


編譯器錯誤 C2885

'class::identifier' : 不是非類別範圍的有效 using-declaration

您使用的 宣告不正確。

這個錯誤可能是因為 Visual Studio 2005 完成的編譯程式一致性工作而產生:對巢狀類型擁有 using 宣告已不再有效;您必須明確限定對巢狀類型所做的每個參考、將類型放在命名空間中,或建立 typedef。

範例

下列範例會產生 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;
}

如果您使用 using 關鍵詞搭配類別成員,C++會要求您在另一個類別中定義該成員(衍生類別)。

下列範例會產生 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;
};