小弟要做一幻方的作业,自己定义了一个类,里面是一个动态数组. 可是在分配空间的时候出错. 下面是代码
//幻方类
TMagicSquare = class
private //data
Matrix: array of array of integer;
Rows: integer;
private //module
procedure Reset(RowCount:integer);
procedure Clear;
public
function BuildMagicSquare(Rows:integer):integer;
end; // Class TMagicSquareprocedure TMagicSquare.Reset(RowCount:integer);
begin
if Matrix<>nil then **对象第一次使用时为什么Matrix<>nil?????
begin
Rows:=0;
finaLize(Matrix); **出错!!
end;
Rows:=RowCount;
SetLength(Matrix,RowCount,RowCount); **出错!!!(if语句注释掉以后)
end;
//幻方类
TMagicSquare = class
private //data
Matrix: array of array of integer;
Rows: integer;
private //module
procedure Reset(RowCount:integer);
procedure Clear;
public
function BuildMagicSquare(Rows:integer):integer;
end; // Class TMagicSquareprocedure TMagicSquare.Reset(RowCount:integer);
begin
if Matrix<>nil then **对象第一次使用时为什么Matrix<>nil?????
begin
Rows:=0;
finaLize(Matrix); **出错!!
end;
Rows:=RowCount;
SetLength(Matrix,RowCount,RowCount); **出错!!!(if语句注释掉以后)
end;
Matrix := nil;
————————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
————————————————————————————————————
procedure TMagicSquare.Reset(RowCount:integer);
begin
Rows:=RowCount;
SetLength(Matrix,RowCount,RowCount); **出错!!!(if语句注释掉以后)
end;