Por que faz sentido dar uma definição para uma função virtual pura?

Scott disse em Effective C ++, 3rd Edition, pg. 43 que para criar uma classe abstrata, precisamos apenas dar a ela um destrutor virtual puro:

class AWOV {                  // AWOV = "Abstract w/o Virtuals"
public:
  virtual ~AWOV() = 0;        // declare pure virtual destructor
};

Então, ele continuou dizendo que há uma torção: devemos fornecer uma definição para o destruidor virtual puro:

AWOV::~AWOW() {}              // definition of pure virtual dtor

Minha pergunta é, especificando= 0, para funções virtuais puras, estamos dizendo que a função não pode ter qualquer definição para a classe onde esta função virtual pura é declarada.

Por que é OK fornecer uma definição (mesmo vazia) para o destruidor virtual puro aqui?

questionAnswers(5)

yourAnswerToTheQuestion