分享方式:


編譯器錯誤 C2079

'identifier' 使用未定義的類別/結構/等位 'name'

指定的識別碼是未定義的類別、結構或等位。

這個錯誤可能是由初始化匿名聯集所造成。

下列範例會產生 C2079:

// C2079.cpp
// compile with: /EHsc
#include <iostream>
int main() {
   std::ifstream g;   // C2079
}

可能的解決方式:

// C2079b.cpp
// compile with: /EHsc
#include <fstream>
int main( ) {
   std::ifstream g;
}

如果您嘗試在類型堆疊上宣告物件,且其正向宣告只在範圍中,也可能會發生 C2079。

// C2079c.cpp
class A;

class B {
   A a;   // C2079
};

class A {};

可能的解決方式:

// C2079d.cpp
// compile with: /c
class A;
class C {};

class B {
   A * a;
   C c;
};

class A {};