Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
v3:subroutines [2024/07/30 22:33] – [Overloading] neils | v3:subroutines [2024/07/30 22:43] (current) – [Overloading] neils | ||
---|---|---|---|
Line 111: | Line 111: | ||
Subroutine overloading, | Subroutine overloading, | ||
- | Overloaded subroutines have the same name but differ in the type, number, or both type and number of parameters. The appropriate subroutine to call is determined at compile-time based on the arguments provided in the call. | + | Overloaded subroutines have the same name but differ in the type, number, or both type and number of parameters. |
+ | |||
+ | ==== Compile-Time Polymorphism ==== | ||
+ | |||
+ | The appropriate subroutine to call is determined at compile-time based on the arguments provided in the call. | ||
Consider the following example: | Consider the following example: | ||
- | SUB test (a AS INT) STATIC | + | SUB PrintMessage(msg AS STRING * 16) |
- | PRINT "a is an integer: "; a | + | PRINT msg |
END SUB | END SUB | ||
| | ||
- | SUB test (a AS STRING * 16) OVERLOAD | + | SUB PrintMessage(msg AS STRING * 16, num AS INT) OVERLOAD |
- | PRINT "a is a string: | + | PRINT msg; " "; |
END SUB | END SUB | ||
| | ||
- | CALL test(5) | + | CALL PrintMessage(" |
- | CALL test("hello") | + | CALL PrintMessage("The number is", 42) |
<adm warning> | <adm warning> |