次のコードが 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;
};
これは、私が最初に投稿したものと同じではありません。だと思いました。