在 Pascal 中创建 class
Creating a class in Pascal
我试图在 Pascal 中创建一个 class,我对声明和语法有点困惑。最主要的是我得到了一个错误“Forward declaration not solved Tetromino.Rotate(LongInt)
”,我读到我需要在实现部分声明我的过程,但我不确定我应该把它放在哪里。另外,如果您发现我的 class 声明有任何其他问题,请告诉我。
program Tetris;
{$MODE OBJFPC}
uses crt, sysutils;
type
Tetromino = class
private
TempFace : array [0..15] of char;
public
Face : array[0..15] of char;
//constructor create(); (idk what this is but read somewhere that you need it)
procedure Rotate(rotation : integer);
end;
var
a,b,c,d,e,f,g : tetromino;
begin
ReadKey();
end.
在程序模块中不需要划分为interface
和implementation
。因此错误描述(执行 implementation section
中的程序)有点误导。尽管如此,它仍然表明缺少 Rotate()
过程的实现。
因此,错误是您在 Tetromino
class 中声明了一个过程,但缺少该过程的实现。您需要在 class 声明和程序的 begin .. end
块之间的某处实现它。
在一个 unit
模块中,它有命名部分:interface
和 implementation
,你在 interface
部分声明 classes(如果那些classes 可以从其他模块访问)并在 implementation
部分实现它们。
在下文中,我概述了您需要在程序中执行的操作,包括 Tetromino
的构造函数
program Tetris;
{$MODE OBJFPC}
uses crt, sysutils;
type
Tetromino = class
private
TempFace : array [0..15] of char;
public
Face : array[0..15] of char;
constructor create(); (idk what this is but read somewhere that you need it)
procedure Rotate(rotation : integer);
end;
var
a,b,c,d,e,f,g : tetromino;
constructor Tetromino.create;
begin
// constructor (automatically) aquires a block of memory
// to hold members of the class
// to do: initialize member fields of the instance
end;
procedure Tetromino.Rotate(rotation: Integer);
begin
// implementation of the Rotate() method
end;
begin
ReadKey();
end.
我试图在 Pascal 中创建一个 class,我对声明和语法有点困惑。最主要的是我得到了一个错误“Forward declaration not solved Tetromino.Rotate(LongInt)
”,我读到我需要在实现部分声明我的过程,但我不确定我应该把它放在哪里。另外,如果您发现我的 class 声明有任何其他问题,请告诉我。
program Tetris;
{$MODE OBJFPC}
uses crt, sysutils;
type
Tetromino = class
private
TempFace : array [0..15] of char;
public
Face : array[0..15] of char;
//constructor create(); (idk what this is but read somewhere that you need it)
procedure Rotate(rotation : integer);
end;
var
a,b,c,d,e,f,g : tetromino;
begin
ReadKey();
end.
在程序模块中不需要划分为interface
和implementation
。因此错误描述(执行 implementation section
中的程序)有点误导。尽管如此,它仍然表明缺少 Rotate()
过程的实现。
因此,错误是您在 Tetromino
class 中声明了一个过程,但缺少该过程的实现。您需要在 class 声明和程序的 begin .. end
块之间的某处实现它。
在一个 unit
模块中,它有命名部分:interface
和 implementation
,你在 interface
部分声明 classes(如果那些classes 可以从其他模块访问)并在 implementation
部分实现它们。
在下文中,我概述了您需要在程序中执行的操作,包括 Tetromino
program Tetris;
{$MODE OBJFPC}
uses crt, sysutils;
type
Tetromino = class
private
TempFace : array [0..15] of char;
public
Face : array[0..15] of char;
constructor create(); (idk what this is but read somewhere that you need it)
procedure Rotate(rotation : integer);
end;
var
a,b,c,d,e,f,g : tetromino;
constructor Tetromino.create;
begin
// constructor (automatically) aquires a block of memory
// to hold members of the class
// to do: initialize member fields of the instance
end;
procedure Tetromino.Rotate(rotation: Integer);
begin
// implementation of the Rotate() method
end;
begin
ReadKey();
end.