diff options
| author | _ov4 <ov4@ov4.org> | 2026-10-17 10:34:37 +0000 |
|---|---|---|
| committer | _ov4 <ov4@ov4.org> | 2026-10-17 10:34:37 +0000 |
| commit | e572d278a44d286c8713d0ee4af9c72a3d1ca73c (patch) | |
| tree | 2fd37a936d1d96869776b2fd4577a121eee974c2 /tests/i/class-overload-methods/program.cps | |
| parent | 377a1fd2eadd2a70cd27f13e2fee6e96c8706a51 (diff) | |
feat(classes): overload methods and NEW constructors
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'tests/i/class-overload-methods/program.cps')
| -rw-r--r-- | tests/i/class-overload-methods/program.cps | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/tests/i/class-overload-methods/program.cps b/tests/i/class-overload-methods/program.cps new file mode 100644 index 0000000..e68d416 --- /dev/null +++ b/tests/i/class-overload-methods/program.cps @@ -0,0 +1,46 @@ +CLASS Box +Value : INTEGER +PUBLIC OVERLOAD PROCEDURE NEW() +Value <- 1 +ENDPROCEDURE +PUBLIC OVERLOAD PROCEDURE NEW(x : INTEGER) +Value <- x +ENDPROCEDURE +PUBLIC OVERLOAD PROCEDURE NEW(x : STRING) +Value <- LENGTH(x) +ENDPROCEDURE +OVERLOAD FUNCTION Get() RETURNS INTEGER +RETURN Value +ENDFUNCTION +OVERLOAD FUNCTION Get(x : INTEGER) RETURNS INTEGER +RETURN Value + x +ENDFUNCTION +OVERLOAD FUNCTION Get(x : STRING) RETURNS STRING +RETURN x & "!" +ENDFUNCTION +OVERLOAD PROCEDURE Set(x : INTEGER) +Value <- x +ENDPROCEDURE +OVERLOAD PROCEDURE Set(x : STRING) +Value <- LENGTH(x) +ENDPROCEDURE +ENDCLASS +TYPE Holder +DECLARE Item : Box +ENDTYPE +DECLARE a : Box +DECLARE b : Box(7) +DECLARE c : Box("four") +DECLARE h : Holder +DECLARE items : ARRAY[1:2] OF Box +OUTPUT a.Get(), b.Get(), c.Get() +OUTPUT h.Item.Get(), items[2].Get() +OUTPUT b.Get(2) +OUTPUT b.Get("ok") +CALL a.Set("abc") +OUTPUT a.Get() +a <- NEW Box(8) +OUTPUT a.Get() +CALL a.NEW() +OUTPUT a.Get() +DELETE a |
