Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    444

    [C++] Overload di operatori, come aggiungerne nuovi?

    Stavo recentemente dedicandomi all'overload di operatori, però sono arrivato al punto che quelli prefefiniti dal C++ non mi sono più sufficienti. Esiste una tecnica che permetta di utilizzare altri simboli o anche parole, per generare nuovi operatori binari e/o unari??

    Ad esempio, l'operatore ! è previsto solo come unario prefisso, ma esiste la possibilità di utilizzarlo anche come binario o, ancora meglio, come unario suffisso (ad esempio per creare il fattoriale)??

    Oppure come creare nuove parole???

    Se nn avete voglia di spiegarmi tutto (sempre se si può fare), sapete almeno consigliarmi qualche fonte che mi possa illuminare???

    Grazie in anticipo
    *********************************
    Andrea
    *********************************

  2. #2
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    No non si può fare.
    E' stato volutamente evitata la possibilità di creare nuovi operatori.
    Puoi solo sovraccaricare quello già esistenti per adattarli a qualche classe.
    Però potresti sempre crearti una normale funzione.

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

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    444
    si ma cm mai nn l'hanno messo volutamente?? sarebbe stato interessante...
    *********************************
    Andrea
    *********************************

  4. #4
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    Originariamente inviato da Squall1988
    si ma cm mai nn l'hanno messo volutamente?? sarebbe stato interessante...
    si non è male come cosa; in altri linguaggi ad esempio è possibile su un mio libro hanno fatto l'esempio per creare un nuovo operatore ** che eleva a potenza. In C++ il problema era secondo, non ricordo dicevano su thinking C++ o fondamenti C++ della deitel, che già un programma complesso in C++ è difficilmente comprensibile se scritto con un minimo di attenzione in meno del necessario, aggiungendo l'utilizzo del sovraccaricamento degli operatori possono già nascere ambiguità ed illogicherie. Quindi per evitare di creare più confusione del necessario non sono stati implementati.

    Cmq il sovraccaricamento degli operatori sono solo un "zuccherino sintattico"(questo me lo ricordo, era su thinking C++ ).
    L'unica soluzione è farti la funzione.

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

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.