是否可以在不使用评论内容的情况下从B调用虚函数foo(int)?
class A {
public:
virtual void foo ( char * ) {
}
virtual void foo ( int ) {
}
};
class B : public A {
public:
void foo ( char * ) {
}
//void foo ( int i ) {
//
// A::foo(i);
//}
};
B b;
b.foo(123); // cannot convert argument 1 from 'int' to 'char *'
答案 0 :(得分:8)
是的,有可能。这里的问题是函数B::foo(char*)
隐藏继承函数A::foo(int)
的名称,但您可以使用{{B
将其带回using
的范围内1}}声明:
class B : public A {
public:
void foo ( char * ) {
}
using A::foo;
};