|
Hi John, While you don't have to test for every possible combination of data type and parameter count, you do have to define every possible valid combination by creating a prototype for it, at least you did in the example. I was looking for some benefit on the calling program side like fewer lines of source code. More work in the service program though I suppose, but that's ok -- I only have to write that once. The main example of overloading that made sense to me was the + binary operator being used for adding numbers or concatenating strings. That would fit my idea of a fixed number of parms, but as you say, the compiler would not be able to catch any invalid combinations of type. On the other hand, with DDaysDur PR 5I 0 OPDESC D Date1 * D Date2 * it would be perfectly reasonable to use c eval days = DaysDur(charDate1: numericDate2) or c eval days = DaysDur(dateDate1: dateDate2) since the service program could use the operational descriptors to determine which parameter was what and convert them accordingly before doing the actual days duration calculation. And I would not have to create a bunch of prototypes for every possible valid combination since pretty much anything would be valid. Now supposing that DaysDur was written so that if you only provided one parameter it would default the other parameter to the system date or something, it could simply check %parms. But I suppose there are other situations where you would want the compiler to validate the parameters before they're passed to the service programs. It's been a long time since I wrote a program that used the operational descriptors, but I believe they do tell you the type of field being passed don't they? Regards, Peter Dow Dow Software Services, Inc. 909 425-0194 voice 909 425-0196 fax ----- Original Message ----- From: "John Taylor" <john.taylor@telusplanet.net> To: <RPG400-L@midrange.com> Sent: Thursday, May 10, 2001 1:32 PM Subject: Re: Overloading in RPG. > Hi Peter, > > Function overloading allows you to mix both the data type, and the number of > parameters passed on the call. Each unique combination of data types/parm > counts creates an interface signature that allows the compiler to do some > basic checking for us. > > If I tried to call DaysDur as: > > Eval Days = DaysDur(BooleanValue: ProcPointer) > > or > > Eval Days = DaysDur(CharDate: NumDate: ThirdDate) > > > the compiler would know that can't be done because there isn't a > corresponding interface signature. Therefore, I the programmer of DaysDur(), > don't have to test for every possible combination of data type and parameter > count. > > Having said that, I'll still toss in my vote for your thinly veiled request > for OPDESC enhancements. :) > > > John Taylor > Canada > > ----- Original Message ----- > From: "Peter Dow" <pcdow@yahoo.com> > To: <RPG400-L@midrange.com> > Sent: Thursday, May 10, 2001 13:35 > Subject: Re: Overloading in RPG. > > > > Hi John, and John, > > > > Looks like you still end up with the same amount of source code and no > > indication in the name of what parameters are allowed. Wouldn't you really > > want a prototype like > > > > DDaysDur PR 5I 0 OPDESC > > D Date1 * > > D Date2 * > > > > and hopefully have the operational descriptors tell you what type and size > > of parameters were actually passed on a given call? > > > > Peter Dow > > Dow Software Services, Inc. > > 909 425-0194 voice > > 909 425-0196 fax > > > > > > > +--- > | 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 > +--- _________________________________________________________ Do You Yahoo!? Get your free @yahoo.com address at http://mail.yahoo.com +--- | 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 mailing list archive is Copyright 1997-2025 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.