编译器错误 C2027

使用未定义类型“type”

在定义类型之前,无法使用该类型。 若要解决此错误,请确保在引用该类型之前已对其进行完全定义。

示例

下面的示例生成 C2027。

// C2027.cpp
class C;
class D {
public:
   void func() {
   }
};

int main() {
   C *pC;
   pC->func();   // C2027

   D *pD;
   pD->func();
}

可以声明指向已声明但未定义的类型的指针。 但 C++ 不允许引用未定义的类型。

下面的示例生成 C2027。

// C2027_b.cpp
class A;
A& CreateA();

class B;
B* CreateB();

int main() {
   CreateA();   // C2027
   CreateB();   // OK
}