Visualizzazione dei risultati da 1 a 3 su 3

Discussione: [C++] Overloading

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    605

    [C++] Overloading

    Ciao a tuti, seguendo la guida su programmazione.html.it
    ho incontrato questo esempio:

    codice:
    #include <iostream>
    
    using namespace std;
    
    int moltiplica(int x, int y);
    // Definizione dei prototipi
    
    float moltiplica (float x, float y);
    
    main()
    {
    	int a = 5;
    	int b = 6;
    	int risultato;
    	float c = 7.9;
    	float d  = 9.2;
    	float risultato1;
    
    risultato  = moltiplica(a, b);
    risultato1 = moltiplica(c, d);
    
    cout  <<"Il risultato della moltiplicazione tra interi è:  "<< risultato <<" tra float è:  "<< risultato1;
    }
    
    
    
     moltiplica(z, x){
    	
     }

    per spiegare il fatto che in c++ posso richiamare la stessa funzinoe con la condizione che gli argomrnti forniti siano diversi.
    Ma vi chiedo, per cortesia, visto che ho fatto più prove, ma il compilatore continua imperterrito a dare errori....
    come dovrebbe essere la funzione che dovrebbe valere, per entrambi i casi...??
    grazie mille e buona giornata,
    Centro... VVoVe:

  2. #2
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    devi fare due funzioni distinte:

    codice:
    #include <iostream>
    
    using namespace std;
    
    int moltiplica(int x, int y);
    // Definizione dei prototipi
    
    float moltiplica (float x, float y);
    
    main()
    {
    	int a = 5;
    	int b = 6;
    	int risultato;
    	float c = 7.9;
    	float d  = 9.2;
    	float risultato1;
    
    risultato  = moltiplica(a, b);
    risultato1 = moltiplica(c, d);
    
    cout  <<"Il risultato della moltiplicazione tra interi e': "
          << risultato <<"\ntra float e':  "<< risultato1 
          << endl;
    
    return 0;
    }
    
    
    
    int moltiplica(int z, int x){
    	return z*x;
     }
    
    
    float moltiplica(float z, float x){
    	return z*x;
     }
    Una funzioni che vale per più casi si fa con il polimorfismo parametrico, ovvero i templates... ma vedrai più avanti.


    edit:
    con tutto il rispetto per la guida di html.it, per imparare il C++ ci vuole un buon libro, se ne trovano anche di scaricabili in rete.

    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    605
    quindi bisogna fare due funzioni.... e non una come pensavo io...
    e in effetti...
    notanto bene l'articolo....


    L'overloading delle funzioni è una funzionalità specifica del C++ che non è presente in C. Questa funzionalità permette di poter utilizzare lo stesso nome per una funzione più volte all'interno dello stesso programma, a patto però che gli argomenti forniti siano differenti. In maniera automatica, il programma eseguirà la funzione appropriata a seconda del tipo di argomenti passati.
    si parla dello stesso nome.... e non della stessa funzione
    grazie...

    Buona giornata

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.