Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [C++] overloading degli operatori

    Ciao a tutti...
    ho realizzato una semplice classe e vorrei fare l'overloading degli operatori di confronto...
    ho però un dubbio:
    conviene dichiararli come friend e dunque posizionarli all'interno della classe...
    oppure dichiararli esterni alla classe?

    l'unico vantaggio che mi viene in mente dichiarandoli come friend è che faccio a meno di utilizzare le funzioni get...


    ciao e grazie a tutti per i consigli!

  2. #2
    normalmente sono funzioni friend, bisogna però vedere la classe per poter prendere la decisione migiore
    ciao
    sergio

  3. #3
    ciao, grazie della risposta...

    la classe è un po' lunga da postare...cmq è per gestire le date...
    permette di confrontare e effetturare somma e differenza tra due date...

    diciamo...come regola generale...quando conviene dichiararle come friend...e quando esterne?

    ciao e grazie ancora

  4. #4
    se usi una funzione membro l'oggetto della classe è implicito ed è il primo operando, se usi una funzione esterna friend invece è esplicito e il primo membro potrebbe non appartenere alla classe.
    Per esempio se hai una classe complex e vuoi sommare un reale ad un complex con il numero reale come primo operando devi usare per forza una funzione esterna.
    Se vuoi confrontare due oggetti appartenenti alla stessa classe puoi usare una funzione membro.
    ciao
    sergio

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 © 2024 vBulletin Solutions, Inc. All rights reserved.