Предположим, что у меня есть следующий код:
class Iinterface
{
virtual void abstractFunction()=0;
};
class Derived : public Iinterface
{
void abstractFunction(); // Do I need this line?
};
Derived::abstractFunction()
{
// implementation here
}
Если я не добавляю эту строку, я получаю ошибку компиляции, в которой abstractFunction
не объявляется в Derived
. Я использую VS 2008.
Я не уверен, почему мне нужна эта конкретная строка (не путайте это с определением функции, которое предоставляется вне объявления класса), если я наследую от Iinterface
, должно быть очевидно, что я объявлен abstractFunction
. Это проблема с визуальной студией или она соблюдается стандартами С++?