Alıntı (mert):
> yapıların aksine sınıflarda vermiş olduğun kod derlenir. Bunun yapıların değer dürü, sınıfların referans türü olması ile ilgisi var mı diye sormak istiyorum bu noktada ben?
C++'ta yapılarla sınıflar arasında işlevsel olarak hiçbir fark yoktur.
D ise, baştan yapıları tekrardan C'deki yetersizliklerine döndürdü ama ondan sonra yavaş yavaş tekrar yetenekler eklemeye başladı.
Yanılmıyorsam bir noktada kurucu işlev yapılar için hiç tanımlanamıyordu bile.
Sanıyorum bu tür gariplikler ve tutarsızlıklar o nedenlere dayalı. Yapılarda neden olamayacağı konusunda hiçbir fikrim yok ...
.. diye geveledikten sonra TDPL'i açıyorum. 7.1.3.1 Constructors bölümünün sonunda açıklanmış:
Alıntı (TDPL):
> Bu, her türün sahip olması gereken T.init değeri ile ilgili bir konu. T.init derleme zamanında bilinmelidir; bu da çalışma zamanında işletilecek olan kurucu işlev ile çelişir. (Sınıflarda T.init null referanstır, varsayılan olarak kurulmuş nesne değildir.)
Yani Mert haklı! :) Sınıfların referans türü olmaları nedeniyle T.init onlarda her zaman için null.
Ali
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]