我很惊讶在 VS2005 中编译的以下代码没有任何抱怨,因为在实现中对 Bar() 的调用让我停下来想知道如何消除歧义。
class Foo
{
public:
void Bar(int param = 0);
private:
void Bar();
};
在哪里:
void Foo::Bar(int param)
{
// do something
return Bar();
}
任何人都可以启发我吗?
编辑:
哦!
顿时意识到自己理解上的差距……
我的实际标题是
class Foo : public IFoo
{
public:
void Bar(int param);
private:
void Bar();
};
class IFoo
{
public:
virtual void Bar(int param = 0) = 0;
};
这与我最初发布的内容不同。我以为是。