1. ホーム
  2. c++

[解決済み】コンパイラーエラー C4430: 型指定子がない - int を想定 [重複].

2022-01-29 18:38:24

質問

このエラーが発生しました。

error C4430: missing type specifier - int assumed. 注意:C++はdefault-int"をサポートしていません。

このコード例では :

//A.h    
#include "B.h"
class A{
    B* b;
    ..
};

//B.h
#include "A.h"
class B{ 
    A* a; // error error C4430: missing type specifier - int assumed.
};

解決方法は?

これは 循環型依存関係 の問題があります。あるクラスへのポインタを宣言する場合、そのクラスの定義は必要ありません; すなわち、その型が 完全型 . そのため A.hB.h , 前進宣言 で十分です。こんな感じ。

//B.h
class A; // change the include of A.h to forward declaration
class B { 
    A* a;
};