Nowhere did I say that friend classes are bad (or not good) things. I said, in effect, that it is best to grant no more access to data within objects than needed. Friend declarations - be they of friend functions, friend classes, or friend member functions - provide a means for selectively grant access.