Чисто виртуальный класс это класс, у которого есть хотя бы один чисто виртуальный метод(= 0
; синтаксис дибильный, конечно). Этот метод не имеет тела, и его поэтому нельзя вызвать.
Поэтому чисто виртуальный класс нельзя инстанцировать, то есть создать экземпляр этого класса.А а;
непосредственно вызывает конструктор без параметров, в этом месте создаётся инстанс класса(синтаксис не менее дибильный). Возникает противоречие. И поэтому программа не компилируется.
Поэтому переменные не могут иметь тип чисто виртуальных классов. Но могут быть ссылки А&
и указатели А*
. Ссылка и указатель будут ссылаться (указывать) на инстанс потомка, которого можно создать.