Logo Background RSS

Pubblicita'

Overloading di funzioni C++

  • Scritto da spriksprik Nessun Commento Comments
    Ultimo aggiornamento: 1 marzo, 2010

    Una delle tante caratteristiche importanti del C++ è sicuramente l’overloading.
    In questo articolo discuteremo dell’overloading di funzioni, che descrive la possibilità di dichiarare funzioni con lo stesso identificatore ma con diverso tipo di argomenti.

    Vediamo subito un esempio:

    #include <iostream>
    #include <cstdlib>

    using namespace std;

    int Massimo(int x, int y)
    {
    if(x > y)
    return x;
    return y;
    }

    float Massimo(float x, float y)
    {
    if(x > y)
    return x;
    return y;
    }

    int main(int argc, char *argv[])
    {
    int a = 10, b = 20;
    float c = 3.6, d = 3.2;

    cout << "Il massimo fra a e b e': " << Massimo(a, b) << endl;
    cout << "Il massimo fra c e d e': " << Massimo(c, d) << endl;

    system("PAUSE");
    return EXIT_SUCCESS;
    }

    Il codice è abbastanza chiaro, la funzione Massimo() è stata scritta in due diversi modi: la prima con argomenti di tipo int e valore di ritorno int, la seconda con argomenti float e valore di ritorno float.

    Questo tipo di approccio è molto importante e prende larga scala sulla programmazione ad oggetti, dove è frequente l’overloading di metodi, l’overloading di operatori e l’override di metodi.

    Chiaramente è un vantaggio definire più funzioni con uno stesso identificatore, in quanto, si evita di dover scrivere vari nomi e sinonimi (sin, sinl, cos, cosl, sqrt, sqrtl) per funzioni che svolgono compiti simili.

Pubblicita'

Inserisci un commento

:D :-) :( :o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :1up: :alert: :beer: :borg: :coffee: :cuckoo: :cuss: :finger: :goombah: :megaman: :pity: :noshake: :oogle: :pacman: :pill: :poison: :poop: :rant: :satansmoking: :shake: :shiftyeyes: :shroom: :sick: :smirk: :stfu: :thumbdown: :thumbup: :turtle: :what: :whatever:
Notify me of follow-up comments via email.