Articles of friend

Le classi interne in C ++ sono automaticamente amici?

Se definisco una class interna in C ++, è automaticamente un amico della class che lo contiene? Ad esempio, questo è legale: class Outer { public: class Inner { public: void mutateOuter(Outer& o); }; private: int value; }; void Outer::Inner::mutateOuter(Outer& o) { o.value ++; // Legal? Or not? } Chiedo perché su alcuni compilatori che […]

Questo modello di protezione dell’accesso orientato alle chiavi è un idioma conosciuto?

Matthieu M. ha presentato un modello per la protezione dell’accesso in questa risposta che avevo già visto, ma non ho mai preso in considerazione un modello: class SomeKey { friend class Foo; SomeKey() {} // possibly make it non-copyable too }; class Bar { public: void protectedMethod(SomeKey); }; Qui solo un friend della class chiave […]

Perché C # non fornisce la parola chiave “amico” in stile C ++?

La parola chiave friend C ++ consente ad una class A di designare la class B come sua amica. Ciò consente alla Class B di accedere ai membri private / protected di class A Non ho mai letto nulla sul motivo per cui questo è stato lasciato fuori da C # (e VB.NET). La maggior […]

C’è un modo per simulare il concetto di “amico” C ++ in Java?

Mi piacerebbe essere in grado di scrivere una class Java in un pacchetto che possa accedere a metodi non pubblici di una class in un altro pacchetto senza dover renderlo una sottoclass dell’altra class. È ansible?

Sovraccarico dell’operatore: funzione membro vs. funzione non membro?

Ho letto che un operatore sovraccarico ha dichiarato che la funzione membro è asimmetrica perché può avere solo un parametro e l’altro parametro passato automaticamente è il puntatore “this”. Quindi non esiste uno standard per confrontarli. D’altra parte, l’operatore sovraccaricato dichiarato come amico è simmetrico perché passiamo due argomenti dello stesso tipo e quindi, possono […]