1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- { %RESULT=210 }
- {$R+}
- {$mode objfpc}
- program test_fail;
- type
- parrayobj = ^tarraycla;
- tarraycla = class
- ar : array [1..4] of real;
- constructor create(do_fail : boolean);
- procedure test;virtual;
- destructor done;virtual;
- end;
- pbigarrayobj = ^tbigarraycla;
- tbigarraycla = class(tarraycla)
- ar2 : array [1..10000] of real;
- constructor good_init;
- constructor wrong_init;
- procedure test;virtual;
- end;
- var
- ta1, ta2 : tarraycla;
- availmem : longint;
- constructor tarraycla.create(do_fail : boolean);
- begin
- ar[1]:=1;
- if do_fail then
- fail;
- ar[2]:=2;
- end;
- destructor tarraycla.done;
- begin
- end;
- procedure tarraycla.test;
- begin
- if ar[1]=1 then
- Writeln('Init called');
- if ar[2]=2 then
- Writeln('Init successful');
- end;
- constructor tbigarraycla.good_init;
- begin
- inherited create(false);
- Writeln('End of tbigarraycla.good_init');
- end;
- constructor tbigarraycla.wrong_init;
- begin
- inherited create(true);
- Writeln('End of tbigarraycla.wrong_init');
- end;
- procedure tbigarraycla.test;
- begin
- Writeln('tbigarraycla.test called');
- Inherited test;
- end;
- begin
- availmem:=memavail;
- ta1:=tarraycla.create(false);
- writeln('Call to ta1.test after successful init');
- ta1.test;
- ta2:=tarraycla.create(true);
- writeln('ta2 = ',longint(ta2),' after unsuccessful init');
- Writeln('Trying to call ta2.test (should generate a Run Time Error)');
- ta2.test;
- end.
|