Eu sempre me perguntei por que codificamos
virtual void MyFunction() = 0;
e não
pure virtual void MyFunction();
Existe uma referência para a base desta decisão?
Eu sempre me perguntei por que codificamos
virtual void MyFunction() = 0;
e não
pure virtual void MyFunction();
Existe uma referência para a base desta decisão?
Respostas:
De Design e evolução de C ++ - Bjarne Stroustrup - Addison-Wesley (ISBN 0-201-54330-3) - capítulo 13.2.3:
De qualquer forma, observar o padrão C ++ (§ 9.2 - Membros da classe)
= 0
é chamado de puro especificador .fonte
pure
uma palavra-chave contextual que você colocou no final de uma definição de função, portanto, emvirtual void MyFunction() pure
vez de= 0
, ir junto comfinal
eoverride
.