title: c++ issue with function overloading in an inherited class
body: <p>This is possibly a noob question, sorry about that. I faced with a weird issue recently when trying to mess around with some high level stuff in c++, function overloading and inheritance.</p>
  
  <p>I'll show a simple example, just to demonstrate the problem;</p>
  
  <p>There are two classes, <code>classA</code> and <code>classB</code>, as below;</p>
  
  <pre><code>class classA{
      public:
          void func(char[]){};    
  };
  
  class classB:public classA{ 
      public:
          void func(int){};
  };
  </code></pre>
  
  <p>According to what i know <code>classB</code> should now posses two <code>func(..)</code> functions, overloaded due to different arguments.</p>
  
  <p>But when trying this in the main method;</p>
  
  <pre><code>int main(){
      int a;
      char b[20];
      classB objB;
      objB.func(a);    //this one is fine
      objB.func(b);    //here's the problem!
      return 0;
  }
  </code></pre>
  
  <p>It gives errors as the method <code>void func(char[]){};</code>  which is in the super class, <code>classA</code>, is not visible int the derived class, <code>classB</code>.</p>
  
  <p>How can I overcome this? isn't this how overloading works in c++? I'm new to c++ but in Java, i know I can make use of something like this.</p>
  
  <p>Though I've already found <a href="https://stackoverflow.com/questions/2159496/c-problem-with-function-overloading">this thread</a> which asks about a similar issues, I think the two cases are different.</p>