Лучше объяснить в коде, чем словами:
//Classes.hpp
struct Base
{
virtual void foo() = 0;
};
struct Derived : public Base
{
//Nothing here
};
//Classes.cpp
void Derived::foo()
{
//Do something here
}
Я видел эту компиляцию без ошибок, но мне кажется странным, что вам не нужно явно указывать в классе Derived, что вы собираетесь реализовать "foo".
Это должно работать в соответствии со стандартом C ++?