I still don't quite understand the concept of OOP in C++.
Is using friend function a bad practice? Does it reduce encapsulation? Why should I use friend function instead of changing my private members to public members? I found that friend function can reduce a lot of codes(eg. setter/getter methods). When should we use friend functions but not other approach?
Thank you.