class Dir
{
private int x, y, t;
public Dir()
{
x = 0;
y = 0;
t = 0;
}
public void InPut(int i,int j,int k)
{
x = i;
y = j;
t = k;
}
}class SqQueue
{
public Dir[] d = new Dir[8];//注意这里
public int rear, front;
public SqQueue()
{
rear = front = 0;
}
//初始化函数,让每个点的对头与队尾相等 public void PushQueue(int i, int j, int k)
{
if (front > 8)
return;
d[rear] = new Dir();
if (rear == 0 && front == 0)//第一次入队
{
d[rear].InPut(i, j, k);
front = (front + 1) % 8;
}
else
{
d[front].InPut(i, j, k);
front = (front + 1) % 8;
}
}
}我执行这个SqQueue[] SQ = new SqQueue[MAX * MAX];想实例化一个SQ数组,让数组SQ里的元素有Dir的8个值但是按这样的定义执行下来依然是只有集合被实例化,而没有8个dir
{
private int x, y, t;
public Dir()
{
x = 0;
y = 0;
t = 0;
}
public void InPut(int i,int j,int k)
{
x = i;
y = j;
t = k;
}
}class SqQueue
{
public Dir[] d = new Dir[8];//注意这里
public int rear, front;
public SqQueue()
{
rear = front = 0;
}
//初始化函数,让每个点的对头与队尾相等 public void PushQueue(int i, int j, int k)
{
if (front > 8)
return;
d[rear] = new Dir();
if (rear == 0 && front == 0)//第一次入队
{
d[rear].InPut(i, j, k);
front = (front + 1) % 8;
}
else
{
d[front].InPut(i, j, k);
front = (front + 1) % 8;
}
}
}我执行这个SqQueue[] SQ = new SqQueue[MAX * MAX];想实例化一个SQ数组,让数组SQ里的元素有Dir的8个值但是按这样的定义执行下来依然是只有集合被实例化,而没有8个dir
只是一个对象数组,对SQ[i]来说,只是声明了,没有实例化
for (int i = 0; i < SQ.Length; i++)
{
SQ[i] = new SqQueue();
}
我猜的,因为重来没有这样用过