Then how can you call member function without type casting the object ?
If I wan to call member function of store class then I need store class object right ! so that I need to typecast !!!
My point is that there is nothing in common between your classes. Furthermore, with multiple inheritance, your Generic class is a store class, so you actually can use non-private members from the store class directly. There is no typecasting needed.

But why bother with multiple inheritance in the first place? Why not just instantiate store objects, purc objects and manu objects when the logic dictates that they are needed?