| 123456789101112131415161718192021222324252627 |
- MODULE TClassMethod;
- (* Class methods: a hidden THIS receiver, field access in bodies,
- value and VAR formals, and a value-returning method. Exit 7. *)
- VAR ExitCode : INTEGER;
- TYPE
- CLASS Point;
- x, y : INTEGER;
- PROCEDURE Set(a, b : INTEGER);
- PROCEDURE Sum() : INTEGER;
- PROCEDURE CopyX(VAR dst : INTEGER);
- END Point;
- CLASS IMPLEMENTATION Point;
- PROCEDURE Set(a, b : INTEGER);
- BEGIN x := a; y := b END Set;
- PROCEDURE Sum() : INTEGER;
- BEGIN RETURN x + y END Sum;
- PROCEDURE CopyX(VAR dst : INTEGER);
- BEGIN dst := x END CopyX;
- END Point;
- VAR p : Point; got : INTEGER;
- BEGIN
- p.Set(3, 4);
- p.CopyX(got); (* VAR formal through the receiver *)
- IF got = 3 THEN
- ExitCode := p.Sum()
- ELSE ExitCode := 100 END
- END TClassMethod.
|