Instead of thinking about exposing private members of a class think more along the lines of calling methods on those classes.
I read an interesting Java article, Why Getter and Setter Methods are Evil, which applies just as much to C++ as it does to Java.