>>687
通常は抽象基底クラスの関数は外部で宣言しないとエラーになる。
また抽象基底クラスの自体は直接インスタンスを生成できないだけで、
間接的に継承された子クラスから呼び出すことはできる。

#include <iostream>

struct A {
virtual void func() = 0;
};

void A::func() { std::cout << "A::func()" << std::endl; }

struct B : public A {
void func() { std::cout << "B::func()" << std::endl; }
void func2() { A::func(); }
};

int main()
{
B* b = new B;

b->func();
b->func2();

delete b;
}