Зачем выбрасывать исключение при умножении? - PullRequest
0 голосов
/ 27 января 2019

Я хочу квадрат, но я не помню, как это сделать, потому что я умножаю переменную, но исключаю, и я не знаю почему.пожалуйста помогите я не знаю что еще сделать enter image description here

  program Project1;
uses crt;
type TSquare=class
             len:integer;
             place:integer;
      function Perimetr:integer;
      function Area:integer;
      function Verify():boolean;
      procedure Show(P,S:real);
constructor Create(P,l:integer);
end;
 function TSquare.Perimetr:integer;
 var P:integer;
begin
       P:=len*4;
  end;
function TSquare.Area:integer;
var S:integer;
begin
       S:=len*len;
  end;
function TSquare.Verify:boolean;
begin

  end;
  procedure TSquare.Show(P,S:real);
  begin
         write('Площидь=',S,'Перимитр=',P);
    end;
constructor TSquare.Create(p,l:integer);
begin
       len:=l;
       place:=p;
end;
var r: TSquare;
    a,b:integer;
  begin
    r.Create(1,5);
    r.Show(r.Perimetr(),r.Area());
  end.

1 Ответ

0 голосов
/ 27 января 2019

SIGSEGV означает доступ к недействительной памяти.Здесь вы не создаете объект TSquare правильно.

r := TSquare.Create(1,5); - это правильный способ создания экземпляра объекта.

...