Mi sono sempre chiesto perché abbiamo codice
virtual void MyFunction() = 0;
e non
pure virtual void MyFunction();
C'è un riferimento per la base di questa decisione?
Da Il design e l'evoluzione del C ++ - Bjarne Stroustrup - Addison-Wesley (ISBN 0-201-54330-3 ) - capitolo 13.2.3:
The curious
= 0
syntax was chosen over the obvious alternative of introducing a new keywordpure
orabstract
because at the time I saw no chance of getting a new keyword accepted. Had I suggestedpure
, Release 2.0 would have shipped without abstract classes. Given a choice between a nicer syntax and abstract classes, I chose abstract classes. Rather than risking delay and incurring the certain fights overpure
, I used the tradition C and C++ convention of using 0 to represent not there.
Comunque guardando lo standard C ++ (§ 9.2 - Membri della classe) = 0
è chiamato pure-specificatore .
Leggi altre domande sui tag c++ syntax keywords virtual-functions