Теперь GHCi имеет режим многострочного ввода, включаемый с помощью: set + m. Например,
Prelude> :set +m
Prelude> let fac 0 = 1
Prelude| fac n = n * fac (n-1)
Prelude|
Prelude> fac 10
3628800
Деструктор Си не виртуален.
blockquote>Да, это так. У него есть база (базы) с виртуальным деструктором (ами), поэтому деструктор C неявно виртуален. Является ли деструктор объявленным виртуальным явно или нет, не имеет значения. То же самое относится и к деструктору D.
Я должен удалить экземпляры класса D через указатель на C.
Я подозреваю, что в некоторых угловых случаях ~ B () не выполняется - возможно ли это?
blockquote>Пока деструктор C является виртуальным, проблем нет. Если деструктор C не был виртуальным, удаление объекта с помощью указателя на C имело бы неопределенное поведение.