I'm not sure if this thread fits this forum, but it's a general C++ design question.

In my case, let's say, object A should have a object B, but B would use some methods exposed by A, so it's not a completely has-a relationship.

If I have B derive from class A, it would work, but strictly B is NOT an A. So, is there a design pattern apply to my case?

thx.