A class that has _any_ pure virtual function cannot be instantiated directly. So not only complete Abstract classes...
class myBase
{
virtual void pureVirtual() = 0;
void normal() { };
};
class myClass : public myBase
{
void pureVirtual() { }
};
int main()
{
myBase base(); // Error, cannot be instantiated
myClass class(); // Fine
}