× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



----- Original Message -----
From: "York, Albert" <albert.york@nissan-usa.com>
To: <RPG400-L@midrange.com>
Sent: Thursday, May 10, 2001 12:19
Subject: RE: Overloading in RPG.


Hi Albert,

> I still don't see any benefit to overloading. It seems like an opportunity
> for confusion.

Function overloading, like other forms of polymorphism, can be confusing if
not used judiciously. So can indicators, overrides, the cycle, etc......


> I don't see how you have simplified maintenance any. You still have 4
> subprograms to maintain.

Not really. What I've shown is the interface, so you didn't have the benefit
of seeing the implementation. In practice, each "sub-program" would simply
convert and/or rearrange the input parameters before calling another
function (say.. DaysDurISO) that did the work. There probably wouldn't be
more than a few lines of code in each implementation of DaysDur.


> In addition, I don't see how there would be any guarantee that these
> routines would do the same thing, just because they have the same name. As
I
> understand it, they are entirely different.

They all serve the same purpose. Namely, to return an integer representing
the days duration between two dates.

It might help if you didn't think of each implementation of DaysDur as a
different function. It's a single function that provides a flexible
interface for your input parameters.

>
> I would prefer to have one procedure and do any necessary conversion in
the
> program.
>
> For example:
>
> DDaysDur          PR             5I 0
>      D CharDate1                      8A
>      D CharDate2                      8A
>
> C                   Eval      Cdate1 = Ndate1
> C                   Eval      Days = DaysDur(Cdate1: Cdate2)
>

How many procedures might call DaysDur? How many lines of code does it take
to convert the parameters to a proper format? Multiply the two numbers. The
result is all the extra code that you wouldn't have to write if you had
overloading.

Without overloading, if you wanted to change DaysDur to accept the new *DATE
data type, you wouldn't be able to without changing each calling procedure.
However, the overloaded version of the function would handle it easily. All
you'd do is specify an additional parameter list (interface), and you're
done. None of the existing code will be affected.


"Imagination continually frustrates tradition; that is its function." - John
Pfeiffer


John Taylor
Canada



+---
| This is the RPG/400 Mailing List!
| To submit a new message, send your mail to RPG400-L@midrange.com.
| To subscribe to this list send email to RPG400-L-SUB@midrange.com.
| To unsubscribe from this list send email to RPG400-L-UNSUB@midrange.com.
| Questions should be directed to the list owner/operator: david@midrange.com
+---

As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.