2016-08-16 24 views
-3

グリッドの2点間の最短経路を見つけるプログラムを作ろうとしています。私はFinalPathというクラスを作成し、北、南、東、西の一歩である周辺地域の位置を追跡しようとしています。C++プログラムのクラス内で同じクラスのインスタンスを作る方法

タイプFinalクラスの配列のインスタンスを作成しましたが、プログラムを実行しようとするとerror-"error:field 'Find' has incomplete type of "FindPath[4]" "と表示されます。私はクラスで入力した

コードは

#include <iostream> 
#include<vector> 
using namespace std; 
int a=0,b=0,g=0; 
class FinalPath 
{ 
public: 
    vector<vector<int> >inputMat; 
    vector<vector<int> >saveMat[4]; 
    int dist; 
    int goal[2]; 
    int next[4][2]; 
    FinalPath Find[4]; 
}; 

に従うよう、コンパイラは私のクラスのインスタンスを作成するためのエラーを示している理由私は疑問に思うのですか? 同じクラスのインスタンスを作成する正しい方法は何ですか? image of code and error console

+0

のように、代わりにクラスへのポインタを使ってどのようにコンパイラは、このデータ構造のサイズを動作することが可能であると思いますか? –

+1

コードの画像を投稿しないでください。 –

+0

可能な複製:http://stackoverflow.com/questions/1021740/can-a-class-be-self-referenced – bigahega

答えて

0

あなたは自分自身に、クラスのインスタンスを置くことができない - それらのインスタンスのそれぞれがそうで、その中に別のインスタンスを持っている、と考えて、無限再帰につながるという。

FinalPath * Find;

関連する問題