これがコンパイルされないのはなぜですか?
error C2660: 'Concrete::WriteLine' : 関数は引数
を 1 つ取りません Line を追加するとわかります:
//using 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++標準で言及されていますか?それとも、コンパイラの動作の一種ですか?