A function needs access to private variables in two classes
Matrix Vector multiplication is a compelling, practical example of this approach, see §11.5 in The C++ Programming Language