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'成员的分配上都是非指针类型的。