Abstract
Many object-oriented languages allow encapsulation of data. We identify a conflict between data encapsulation and dynamic dispatch, and propose that it be resolved via the addition of ``accessory functions''. We discuss the implementation of accessory functions for C++, and show that this system extends naturally to allow multiple dispatch in C++.