|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Nov 2005
Messaggi: 70
|
[C++] Ereditarietà e funzioni friend
Quando una classe deriva "pubblicamente" da una classe base eredita anche le sue funzioni friend. Ma se dovessi ereditare la classe "privatamente" come faccio ad esporre la funzione friend per renderla nuovamente accessibile alla classe derivata (con i metodi della classe base è sufficiente una re-dichiarazione!).
class A{ public: void f_interna(){}; // metodo della classe. friend f_friend(A& Obj){}; // funzione friend. }; classe B : private A{ public: A::f_interna(); // Il metodo della classe A viene nuovamente esposto. .................. // Devo ridefinire la funzione friend? } |
![]() |
![]() |
![]() |
#2 |
Member
Iscritto dal: Nov 2005
Messaggi: 70
|
Ho risolto la questione. Se interessa è sufficiente scrivere:
classe B : private A{ public: A::f_interna(); // Il metodo della classe A viene nuovamente esposto. friend f_friend(B::A&); // La funzione friend è nuovamente pubblica. }; ... insomma me le canto e me le suono! |
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Nov 2005
Messaggi: 70
|
Come non detto. In questo modo compila ma non funziona!
Qualche idea? |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 17:08.