123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- program tw27185;
- {$mode objfpc}{$H+}
- uses
- {$IFDEF UNIX}{$IFDEF UseCThreads}
- cthreads,
- {$ENDIF}{$ENDIF}
- Classes
- { you can add units after this };
- var
- NormalClassInit: Boolean = False;
- NormalClassDone: Boolean = False;
- NestedTypeClassInit: Boolean = False;
- NestedTypeClassDone: Boolean = False;
- NestedTypeClassNestedClassInit: Boolean = False;
- NestedTypeClassNestedClassDone: Boolean = False;
- Type
- { TNormalClass }
- TNormalClass = class
- public
- class constructor Create;
- class destructor Destroy;
- end;
- { TNestedTypeClass }
- TNestedTypeClass = class
- private
- type
- { TNestedClass }
- TNestedClass = class
- public
- class constructor Create;
- class destructor Destroy;
- end;
- public
- class constructor Create;
- class destructor Destroy;
- end;
- { TNestedTypeClass }
- class constructor TNestedTypeClass.Create;
- begin
- NestedTypeClassInit := True;
- //WriteLn('class constructor TNestedTypeClass.Create');
- end;
- class destructor TNestedTypeClass.Destroy;
- begin
- NestedTypeClassDone := True;
- //WriteLn('class destructor TNestedTypeClass.Destroy');
- end;
- { TNormalClass }
- class constructor TNormalClass.Create;
- begin
- NormalClassInit := True;
- //WriteLn('class constructor TNormalClass.Create');
- end;
- class destructor TNormalClass.Destroy;
- begin
- NormalClassDone := False;
- //WriteLn('class destructor TNormalClass.Destroy');
- end;
- { TNestedTypeClass.TNestedClass }
- class constructor TNestedTypeClass.TNestedClass.Create;
- begin
- NestedTypeClassNestedClassInit := True;
- //WriteLn('class constructor TNestedTypeClass.TNestedClass.Create');
- end;
- class destructor TNestedTypeClass.TNestedClass.Destroy;
- begin
- NestedTypeClassNestedClassDone := True;
- //WriteLn('class destructor TNestedTypeClass.TNestedClass.Destroy');
- end;
- begin
- if not NormalClassInit then
- Halt(1);
- if not NestedTypeClassInit then
- Halt(2);
- if not NestedTypeClassNestedClassInit then
- Halt(3);
- end.
|