Неполные типы не могут быть созданы, и абстрактные классы (то есть те, у которых есть виртуальные функции-члены) также не могут быть созданы.
struct incomplete_type;
struct abstract_class
{
virtual void foo() = 0;
};
Каким-либо образом сами абстрактные классы считаются неполными?