Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在类中调用变量时发生Pascal访问冲突_Pascal_Delphi - Fatal编程技术网

在类中调用变量时发生Pascal访问冲突

在类中调用变量时发生Pascal访问冲突,pascal,delphi,Pascal,Delphi,我用Pascal编写了一些非常简单的代码,导致了以下错误: Project BugFixing.exe引发了异常类EAccessViolation,并在模块“BugFixing.exe”中显示消息“地址0040F1EE处的访问冲突”。写入地址00000004' 该程序由两个模块组成: bugfilling.dpr: program BugFixing; {$APPTYPE CONSOLE} uses SysUtils, uLinearProgrammingMainLogic in 'uL

我用Pascal编写了一些非常简单的代码,导致了以下错误:

Project BugFixing.exe引发了异常类EAccessViolation,并在模块“BugFixing.exe”中显示消息“地址0040F1EE处的访问冲突”。写入地址00000004'

该程序由两个模块组成: bugfilling.dpr:

program BugFixing;

{$APPTYPE CONSOLE}

uses
  SysUtils, uLinearProgrammingMainLogic in 'uLinearProgrammingMainLogic.pas', math;

var
MinOrMax : integer ;
Question : TQuestion ;

begin
  try
    Randomize ;
    MinOrMax := RandomRange(0,2) ;
    Question.SetMaximiseQuestion(MinOrMax);

  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;
end.
和程序设计mainlogic.pas:

    unit uLinearProgrammingMainLogic;

interface

uses sysUtils, math ;

type

TQuestion = class
  private
    MaximiseQuestion : boolean ;
  public
    procedure SetMaximiseQuestion (MinOrMax : integer) ;
end;

implementation

procedure TQuestion.SetMaximiseQuestion(MinOrMax : integer);
begin
  if MinOrMax = 0 then
    MaximiseQuestion := true
  else
    MaximiseQuestion := false ;
end;

end.

如果有人能向我解释为什么这会造成访问冲突,我将不胜感激。提前感谢。:)

类在使用之前必须始终实例化(TClassType.create)。唯一的例外是类/静态方法,但您没有这样声明它们(这不是基本用法)

我尝试添加一个名为“Create”的构造函数,并使用它设置MaximiseQuestion的值,但这似乎会产生与使用过程相同的错误。我误解了你的建议吗?在你的delphi手册或帮助中查找语法。它是instancevariable:=tclasstype.create而不是instancevariable.create。