【发布时间】:2010-10-27 15:46:46
【问题描述】:
我遇到了一个问题,在我的类覆盖其基类的函数后,所有重载版本的函数都被隐藏了。这是设计使然还是我做错了什么?
例如
class foo
{
public:
foo(void);
~foo(void);
virtual void a(int);
virtual void a(double);
};
class bar : public foo
{
public:
bar(void);
~bar(void);
void a(int);
};
下面会给出一个编译错误,说明 bar 中没有 a(double) 函数。
main()
{
double i = 0.0;
bar b;
b.a(i);
}
【问题讨论】:
-
如果您发布(如果可能)实际代码会有所帮助。您发布的代码缺少一些细节,例如类定义后的分号和
bar中a的返回类型... -
我无法发布实际代码。我在帖子中添加了详细信息,这并不是真正的语法练习。
-
我尝试在我的电脑上编译这段代码,没有错误,“ba(i)”在类栏中调用“void a(int)”函数,0.0被转换为0。
标签: c++ inheritance polymorphism overriding