Even if Macromedia offered the ability to do overloading based on types I would tell everyone and their brother how bad of an idea it is. Overloading should simply not be used in a typeless language. It doesn't matter if CF has the ability to make guesses about types as those guesses could be wrong. For example...
int a = 0; double b = 0d; float c = 0F; char d = 0; String e = "0"; byte f = 0; Using a strongly typed language, all of the above are different. In CF, all of the above are the same. Matt Liotta President & CEO Montara Software, Inc. http://www.montarasoftware.com/ V: 415-577-8070 F: 415-341-8906 P: [EMAIL PROTECTED] > -----Original Message----- > From: Hal Helms [mailto:[EMAIL PROTECTED]] > Sent: Monday, September 02, 2002 1:35 PM > To: CF-Talk > Subject: RE: CFC theory > > I was not meaning to imply that overloading should only be used for > different number of variables, but for both number *and* type of > variables - in other words, for method signatures. If CFCs are going to > do typechecking for return types and argument types, they can certainly > do type checking for method arguments. > > Hal Helms > Preorder "Discovering ColdFusion Components (CFCs)" at > www.techspedition.com > > -----Original Message----- > From: Matt Liotta [mailto:[EMAIL PROTECTED]] > Sent: Monday, September 02, 2002 4:07 PM > To: CF-Talk > Subject: RE: CFC theory > > > What? If you use an if statement or an overload the same conditional > logic still happens. It is just a matter of what syntax you use to > accomplish it. And again IMHO, overloading is a bad choice of variable > numbers of parameters. > > Matt Liotta > President & CEO > Montara Software, Inc. > http://www.montarasoftware.com/ > V: 415-577-8070 > F: 415-341-8906 > P: [EMAIL PROTECTED] > > > -----Original Message----- > > From: Hal Helms [mailto:[EMAIL PROTECTED]] > > Sent: Monday, September 02, 2002 1:09 PM > > To: CF-Talk > > Subject: RE: CFC theory > > > > Well, that's exactly what we have to do because the folks at > Macromedia > > decided not to offer overloading. But programmers shouldn't have to > > resort to conditional code to make up for the language's deficits. > > > > Hal Helms > > Preorder "Discovering ColdFusion Components (CFCs)" at > > www.techspedition.com > > > > -----Original Message----- > > From: Matt Liotta [mailto:[EMAIL PROTECTED]] > > Sent: Monday, September 02, 2002 3:53 PM > > To: CF-Talk > > Subject: RE: CFC theory > > > > > > I disagree. What you are suggesting is a lame use of overloading that > > could easily be handled by an if statement. Simply make the address > > parameter optional and check for its existence. IMHO, overloading > should > > only be used for strongly typed languages. > > > > Matt Liotta > > President & CEO > > Montara Software, Inc. > > http://www.montarasoftware.com/ > > V: 415-577-8070 > > F: 415-341-8906 > > P: [EMAIL PROTECTED] > > > > > -----Original Message----- > > > From: Hal Helms [mailto:[EMAIL PROTECTED]] > > > Sent: Monday, September 02, 2002 12:53 PM > > > To: CF-Talk > > > Subject: RE: CFC theory > > > > > > Overloading means that a method or constructor can have multiple > > "method > > > signatures". For example, an overloaded constructor for Person() > might > > > > > have the following Person(), Person(firstName, lastName), > > > Person(firstName,lastName, address), etc. Not having this ability > > means > > > that we have to resort to all sorts of workarounds while a standard > OO > > > > > implementation of overloading would eliminate this problem. > > > > > > Hal Helms > > > Preorder "Discovering ColdFusion Components (CFCs)" at > > > www.techspedition.com > > > > > > -----Original Message----- > > > From: Jeffry Houser [mailto:[EMAIL PROTECTED]] > > > Sent: Monday, September 02, 2002 1:29 PM > > > To: CF-Talk > > > Subject: Re: CFC theory > > > > > > > > > At 09:27 AM 9/1/2002 -0700, you wrote: > > > > > > > > 3. Is the data created inside a component protected from outside > > > > > > forces? I'm a little grey on this one. You can create > component > > > > > specific variables using the this scope. > > > > > > > >"this" scope is public, the unnamed scope is private so this gets a > > > > >YES. > > > > > > :hmm: That is interesting. I don't like un-named scopes. I > wish > > > someone at Macromedia took a little time to document this stuff. > > > I thought the variable was automatically put into the this scope. > > I > > > have to agree with Hal on this one. That is a kludge. The scope > > should > > > > > > have a name. A scope named private would have been a better option. > > > > > > > > > > > 2. Do CFCs support Overloading / Overriding? Not in related > > > > > objects. > > > > > > > >Overloading no, overriding yes. (And I don't really agree that > > > >overloading is actually *necessary* to claim 'OO-ness' - much of > the > > > >worst code I have seen in OO languages is because of overloading > and > > > >there are almost always ways around it). > > > > > > > > > Allow me to bang my head on the desk. I was using the two terms > > > interchangeably. > > > I doubled checked my OO book and it uses the term overloading > > > exclusively. What exactly is overriding, then? > > > > > > > > > > > A child CFC inherits all parent > > > > > methods as is. You do not have the ability to change > > functionality > > > > > of inherited methods. > > > > > > > >Yes you do. Try the following: > > > > > > > > // base.cfc: > > > > <cfcomponent> > > > > <cffunction name="foo" returntype="string"> > > > > <cfreturn "I'm base.foo"/> > > > > </cffunction> > > > > </cfcomponent> > > > > > > > > // derived.cfc: > > > > <cfcomponent extends="base"> > > > > <cffunction name="foo" returntype="string"> > > > > <cfreturn "I'm derived.foo"/> > > > > </cffunction> > > > > </cfcomponent> > > > > > > > > // test.cfm: > > > > <cfset b = createObject("component","base")/> > > > > <cfset d = createObject("component","derived")/> > > > > <cfoutput> > > > > b.foo() is #b.foo()#<br> > > > > d.foo() is #d.foo()#<br> > > > > </cfoutput> > > > > > > > >You can pass d to anything expecting a base component instance so > > > >substitutability is preserved and polymorphism is also preserved. > > > > > > You're right. When did this creep into the product? I'd bet my > > right > > > > > > arm that this was not supported during the beta cycle? > > > > > > > > > > > > > > > > > 3. Do CFCs support inheritance? Yes, they do. However without > > the > > > > > overloading / overriding it is nothing more than a fancy > include. > > > > > > > >Overloading is mostly irrelevant for inheritance - in most (all?) > OO > > > >languages, when you inherit an overloaded set of methods, you have > to > > > > > >reimplement all of them in order to preserve overloading - > > overloading > > > >normally only occurs within each class definition. > > > > > > > >As pointed out above, CFMX does have overriding so inheritance *is* > > > > >more than a fancy include. > > > > > > Yes, you are right. I retract my original statement. It was > based > > on > > > > > > incomplete facts. > > > > > > > > > > > > > > 4. Do CFCs support polymorphism? I would say no. I cannot > create > > > > > > > two different methods with the same exact name, but different > > > > > argument types. That is the essence of polymorphism. > > > > > > > >No, that is overloading. Polymorphism requires overriding - see > above > > - > > > > > > >so CFMX *does* support polymorphism. Polymorphism is 'virtual > > > >functions' in most every OO language, something that CFMX does > have. > > > > > > > > > For me, the lack of the ability to overload is what makes me say > > you > > > > > > > > cannot apply Object Oriented development > > > > > > > >As I say above, overloading really has nothing to do with OO. C has > > > > >overloading (Oh, yes, it does! Check out the latest ISO C standard > to > > > > > >see how they worked that in. Not for all types, admittedly, but > they > > > >did add it). > > > > > > > > > > > > >(Do I need to mention that I wrote the first ANSI-validated C > > compiler, > > > > > > >spent eight years on the ISO C++ Standards Committee - three as > > > >secretary > > > >- designing parts of that language and also worked on the UK and > ISO > > > Java > > > >Study Groups for a couple of years as well? :) > > > > > > ;) Then I'm sure you'll have no trouble drilling the differences > > > between overloading and overriding into my head? > > > > > > > > > > > > -- > > > Jeffry Houser | mailto:[EMAIL PROTECTED] > > > Need a Web Developer? Contact me! > > > AIM: Reboog711 | Phone: 1-203-379-0773 > > > -- > > > My CFMX Book: > > > <http://www.amazon.com/exec/obidos/ASIN/0072225564/instantcoldfu-20> > > > My Books: http://www.instantcoldfusion.com > > > My Band: http://www.farcryfly.com > > > > > > > > > > > > > > > ______________________________________________________________________ Get the mailserver that powers this list at http://www.coolfusion.com FAQ: http://www.thenetprofits.co.uk/coldfusion/faq Archives: http://www.mail-archive.com/[email protected]/ Unsubscribe: http://www.houseoffusion.com/index.cfm?sidebar=lists

