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ı
= 0sözdizimi, yeni bir anahtar kelime eklemenin açık bir alternatifi olarak seçildipureveyaabstracto 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 .
pureböylece, bir fonksiyon tanımının sonunda koymak bağlamsal anahtar kelime virtual void MyFunction() pureyerine = 0eşlik etmek, finalve override.