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.
I'll show a simple example, just to demonstrate the problem;
There are two classes, classA
and classB
, as below;
class classA{
public:
void func(char[]){};
};
class classB:public classA{
public:
void func(int){};
};
According to what i know classB
should now posses two func(..)
functions, overloaded due to different arguments.
But when trying this in the main method;
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;
}
It gives errors as the method void func(char[]){};
which is in the super class, classA
, is not visible int the derived class, classB
.
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.
Though I've already found this thread which asks about a similar issues, I think the two cases are different.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…