Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2011
    Messaggi
    106

    Classi[c++]

    Ragazzi ho una domanda sulle classi in C++...

    Perchè non scriviamo friend anche agli operatori aritmetici??Non accedono anche loro ai membri privati della classe??

    es:
    class nn{
    private:
    public:
    friend ostream& operator<<();
    nn& operator%=(const nn& ); -------------------------------->perché non friend nn& operator%=(const nn& );
    }
    grazie!!

  2. #2
    Lì stai dichiarando l'operatore + come funzione membro, per cui può accedere già di suo ai campi privati.
    L'operatore di inserimento in stream, invece, non può essere implementato come funzione membro, dato che il tipo che sta a sinistra dell'operatore (ostream&) non corrisponde a quello della classe. Per questo motivo va implementato come funzione libera, che per poter accedere ai membri privati della classe deve essere friend.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2011
    Messaggi
    106
    ok perfetto grazie mille!! XD

  4. #4
    Amaro C++, il gusto pieno dell'undefined behavior.

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.