   Multiple Inheritence and Overloaded Functions (C++)
  Okay, I have two classes, both of which have the same function, init(...) [amongst other things], but init's parameter's are different:class A{...public:init(char, int, int);}class B{...public:init(int, int, int, int, int, int);}Now, I have a third class that inherits from both:class C: public A, public B{...}Now I make an instance of C, and try to call init, using the specific parameters for class A:C c;c.init('a', 2, 4); // should be obvious to the compiler which one I am calling...When I try to compile that, however, the compiler (mingw) says that it is ambiguous as to which init() I am trying to call, and lists both of them.My question: is this correct? I think that it would be obvious that I am trying to call class A's function.Is there a way I can sidestep the problem? Such as casting the derived class C to class A when I call the function?I temporarily "solved" the problem by renaming one of the init functions with a clearer name, but this not a permanent solution in any sense. Does anyone have any suggestions, or am I simply using bad design with classes?Any help would be appreciated.   
  You can use a using statement to pull the two function declarations into C's scope. Ex:struct A {  void init(int) {}};struct B {  void init(float) {}};struct C : A, B {  using A::init;  using B::init;    C() {    init(0);    init(0.0f);  }};;  Thank you SiCrane, that was exactly what I was looking for.   