struct Vertex{
int num;
int low;
bool seen;
Vertex *parent;
Vertex(){
num = 0; low = 0; seen = false; parent = NULL;
}
};
これは構造体です。問題は、Vertex型の配列を作成しようとすると、デバッガーが非ポインタークラス型であると表示することです。これは私がそれを宣言する方法です:
Vertex *mark;
mark = new Vertex[numVert];
(マークはクラスで宣言され、割り当てはデフォルトのコンストラクターで行われます)。
以前、このようにポインタ配列を宣言しました。それが今機能しない理由は何でしょうか?
Graph::Graph(int v){
int i;
numVert = v;
count = 0;
mark = new Vertex[numVert];
matrix = new int*[numVert];
for (i=0;i<numVert;i++){
mark[i]->seen = false;
matrix[i] = new int[numVert];
for (int j=0; j<numVert;j++)
matrix[i][j]=0;
}
}
これは最初に呼ばれる場所です。配列の割り当てとその「seen」メンバーのfalseへの割り当ての両方で非ポインター型であると述べています。