コーディングする理由はいつも疑問に思っていました
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-クラスメンバー)を見てください= 0
はpure-specifierと呼ばれます。