Perché il C ++ non ha una parola chiave "pura" per le funzioni virtuali?

31

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?

    
posta Mawg 20.05.2015 - 10:53
fonte

1 risposta

71

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 keyword pure or abstract because at the time I saw no chance of getting a new keyword accepted. Had I suggested pure, 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 over pure, 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 .

    
risposta data 20.05.2015 - 10:58
fonte

Leggi altre domande sui tag