Should I hide or show this implementation?
Never lie in your code. If you say: addFrame, I expect that passing Frame should be absolutely fine. The first function you have to provide as this class' interface is addFrame(Frame const&amp;). Then, if you firmly believe that having the (IntRect, uint) overload is really useful when writing real client code, add this overload. But (Frame const&amp;) should go first (I mean when you think whether or not).

BTW, I'm not sure what the Frame is, but you should consider passing it by constant reference - that's idiomatic.