【发布时间】:2014-09-11 17:04:13
【问题描述】:
是否可以从 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 *'
【问题讨论】:
-
请修正缩进.....
virtual void foo(int)的声明乍一看似乎是virtual void foo(char *)的正文。编译器可能不关心奇怪的格式,但人类会...... -
@AndreKostur FWIW,
foo重载的奇怪缩进是由编辑引入的,而不是由 OP。
标签: c++ inheritance polymorphism