Noem de voor- en nadelen van overloading

  • Voordeel van overloading: Operatoren en functienamen zijn in veel wetenschapsgebieden ook 'overloaded'. Door overloading in programmeertalen toe te staan, hoeven we geen kunstmatig gecreerde namen of operatoren te verzinnen, zodat een -qua naamgeving - zo natuurlijk mogelijke vertaling van het probleem mogelijk is. We geven ter illustratie nog enkele voorbeelden van overloaded operatoren uit de wiskunde:
    - De operator '+' gebruiken we in de wiskunde uiteraard voor de optelling van allerlei soorten getallen (natuurlijke, gehele, rationale, reële, complexe) en ook voor het aangeven of een dergelijk getal positief is (dan is het een uniare operator) Ook tal van andere wiskundige elementen kunnen met hetzelfde symbool worden opgeteld, zoals vectoren, matrices, polynomen, integrale en tal van andere funties. Verder gebruiken we het symbool '+' ook in een andere betekenis, bij het rekenen aan logische schakelingen waar het toegepast wordt als or-operator en soms gebruiken we het ook wel eens voor het toevoegen van een element aan een verzameling: a + {b,c}={a}u{b,c} = {a,b,c}
    Nadeel van overloading:
    Een nadeel van overloading is dat een compiler of interpretator aan de 'overloaded' operator- of functienaam alleen, niet kan zien welke operatie deze dient uit te voeren. Er moet een methode worden toegepast die in een dergelijke situatie de typen bepaalt van alle operanden of argumenten en op basis daarvan beslist welke operatie op de operanden kan worden toegepast. In geval van contextafhankelijke overloading moet deze bovendien nagaan welk type als resultaat verwacht wordt, bijvoorbeeld bij een toekenning van het resultaat aan een variabele van een bepaald type. Het is dus duidelijk dat voor overloading typering noodzakelijk is. Alhoewel deze typering zelf niet als nadeel te noemen is, moet er wel een hoop extra werk verricht worden om te komen tot een 'overloading-resolutie'. Zeker bij de taal Ada is deze resolutie complex en tijdrovend.
    Uiteraard moeten we overloading alleen dan toepassen als voor de gebruiker van de programmatekst ook snel duidelijk is welke operatie bedoeld wordt, anders zal dit ook als nadeel kunnen werken.

    Rapporteer Plaats commentaar