这可能是一个小白的问题,很抱歉。 在C ++中,函数重载和继承一些高层次的东西周围试图乱,当我面临着一个奇怪的问题最近。
我将展示一个简单的例子,只是为了说明问题;
有两类, classA
和classB
如下;
class classA{
public:
void func(char[]){};
};
class classB:public classA{
public:
void func(int){};
};
据我了解classB
现在应该posses 2个func(..)
功能,过多的占用不同的参数。
但是,当在main方法尝试这一点;
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;
}
它给错误作为方法void func(char[]){};
这是在父类, classA
,是不是INT派生类,可见classB
。
我该如何克服这个问题? 这不就是在C ++中如何超载的作品? 我是新来的C ++,但在Java中,我知道我可以利用这样的事情。
虽然我已经发现了这个线索 ,询问有关类似的问题,我觉得这两种情况是不同的。