Neden kodladığımızı hep merak etmişimdir.
virtual void MyFunction() = 0;
ve yok
pure virtual void MyFunction();
Bu kararın temelinde bir referans var mı?
Neden kodladığımızı hep merak etmişimdir.
virtual void MyFunction() = 0;
ve yok
pure virtual void MyFunction();
Bu kararın temelinde bir referans var mı?
Yanıtlar:
Gönderen Tasarım ve C Evrim ++ Bjarne Stroustrup - - Addison-Wesley (ISBN 0-201-54330-3) - Bölüm 13.2.3:
Meraklı
= 0
sözdizimi, yeni bir anahtar kelime eklemenin açık bir alternatifi olarak seçildipure
veyaabstract
o zamanlar kabul edilen yeni bir anahtar kelime alma şansım olmadı. Önermiş olsaydımpure
, Sürüm 2.0, soyut sınıflar olmadan gönderilirdi. Güzel bir sözdizimi ve soyut sınıflar arasında bir seçim yapıldığında, soyut sınıfları seçtim. Gecikmeyi riske atmak ve belirli kavgaları sona erdirmek yerinepure
, C ve C ++ geleneğini orada olmayanları temsil etmek için 0 kullanarak kullandım .
Yine de C ++ standardına bakıldığında (§ 9.2 - Sınıf üyeleri) saf belirteci= 0
olarak adlandırılır .
pure
böylece, bir fonksiyon tanımının sonunda koymak bağlamsal anahtar kelime virtual void MyFunction() pure
yerine = 0
eşlik etmek, final
ve override
.