| 123456789101112131415161718192021222324 |
- MODULE TClassSibling;
- (* A method body calls a sibling method by its bare name; it is a
- call on THIS. Exit 7. *)
- VAR ExitCode : INTEGER;
- TYPE
- CLASS Acc;
- total : INTEGER;
- PROCEDURE Add(v : INTEGER);
- PROCEDURE AddTwice(a, b : INTEGER);
- PROCEDURE Get() : INTEGER;
- END Acc;
- CLASS IMPLEMENTATION Acc;
- PROCEDURE Add(v : INTEGER);
- BEGIN total := total + v END Add;
- PROCEDURE AddTwice(a, b : INTEGER);
- BEGIN Add(a); Add(b) END AddTwice; (* sibling calls *)
- PROCEDURE Get() : INTEGER;
- BEGIN RETURN total END Get;
- END Acc;
- VAR c : Acc;
- BEGIN
- c.AddTwice(3, 4);
- ExitCode := c.Get()
- END TClassSibling.
|