domenica 23 novembre 2014

Funzioni "Friend" e istruzione "operator"

Le Funzioni Friend sono delle funzioni che non fanno parte della Casse. Il loro scopo è quello di assolvere compiti che altrimenti non potrebbero essere assolti.

Class Frazione
{
    friend Frazione Somma(Frazione);

  • "friend Frazione" indica il tipo di dato restituito dalla funzione friend
  • "(Frazione)" indica il tipo di parametro che verrà passato alla funzione, è possibile tralasciare     nel prototipo dell funzione il parametro
  • Una funzione friend i posiziona prima di ogni altra funzione
  • Le funzioni friend possono essere utilizzate solo dai membri della classe, non sono                     raggiungibili dal main()
  • Una funzione friend è raggiungibile solo dall'oggetto stesso, non da altri oggetti di stessa           tipologia   
private:
        int num;
        int den;
}

Come va implementata una funzione friend:
Frazione Somma (Frazione a)
   {
      ...
      ...
      ...
   }

Se non fosse un metodo friend invece utilizzeremmo la sintassi:
Frazione::Somma (Frazione a)
   {
      ...
      ...
      ...
   }

Istruzione "operator":
E' possibile sostituire alla parola somma l'operatore di somma "+", per farlo utilizzo l'istruzione "operator" seguito dall'operatore matematico (nel nostro caso +):
Frazione operator + (Frazione a)
   {
      ...
      ...
      ...
   }
che implementato all'interno del main() mi permetterà di utilizzare due oggetti come se fossero due numeri, vediamo l'esempio:

main()
 {
   Frazione a(5,3);
   Frazione b(3,2);
   Frazione c;
   
   c=a+b;
}

*!* l'istruzione "operator" può essere utilizzato anche con gli altri operatori matematici +  -  +=  -=  >   <   /   *   ...

Nessun commento:

Posta un commento