为什么这不编译?
错误 C2660: 'Concrete::WriteLine' : 函数不接受 1 个参数
我知道如果我添加行:
//使用 AbstractBase::WriteLine;
它有效,但我不明白为什么。
#include "iostream"
class AbstractBase
{
public:
virtual void WriteLine() = 0;
virtual void WriteLine( int i )
{
std::cout<<"AbstractBase"<<std::endl;
}
};
class Concrete : public AbstractBase
{
public:
//using AbstractBase::WriteLine;
virtual void WriteLine()
{
std::cout<<"Concrete Sub Class"<<std::endl;
}
};
int main()
{
Concrete ff;
ff.WriteLine();
ff.WriteLine(1);
return 0;
}
有人可以解释一下这里发生了什么。谢谢
有谁知道这种行为是否是 C++ 标准中定义的行为。它在 C++ 标准中提到过吗?或者它只是一种编译器行为?