web-dev-qa-db-ja.com

C ++に仮想関数の「純粋な」キーワードがないのはなぜですか?

コーディングする理由はいつも疑問に思っていました

virtual void MyFunction() = 0; 

ではなく

pure virtual void MyFunction();

この決定の根拠となるリファレンスはありますか?

From C++の設計と進化 -Bjarne Stroustrup-Addison-Wesley(ISBN 0-201-54330-3)-章13.2.3:

好奇心が強い= 0構文は、新しいキーワードpureまたはabstractを導入するという明白な代替案よりも優先して選択されました。これは、新しいキーワードが受け入れられる機会がなかったためです。 pureを提案した場合、リリース2.0は抽象クラスなしで出荷されます。より良い構文と抽象クラスのどちらかを選択できることから、私は抽象クラスを選択しました。遅延の危険を冒してpureで特定の争いを招くのではなく、0を使用して存在しないという伝統的なCおよびC++の規則を使用しました

とにかくC++標準(§9.2-クラスメンバー)を見てください= 0pure-specifierと呼ばれます。

71
manlio