昨晚在newsgroup上看到一个问题。我自己也弄错了。放在这。做个记录。
看下面的程序:
#include <iostream>
using namespace std;
class Base
{
public:
virtual void fun(int a)
{
cout<< "Base fun"<<a <<endl;
}
virtual void fun()
{
cout<<"Base void fun" <<endl;
}
};
class Der:public Base
{
public:
// using Base::fun;
void fun()
{
cout<<"Der:: fun()" <<endl;
}
};
void main()
{
Der d;
d.fun();
d.fun(1);
}
有问题不? 咋一看一点问题都没有。但是编译器就是编译不了。呵呵。后来查到了说是个名字隐藏问题。解决方法很简单,把注释那行还原回来就ok了。