Forum: D Programlama Dili RSS
const üye işlevlerin bildirimi
acehreli (Moderatör) #1
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Konu adı: const üye işlevlerin bildirimi
Üye işlevin nesnede değişiklik yapmayacağı garantisi, işlev tanımlanırken const anahtar sözcüğü ile verilir.

C++'da bu sözcük parametre listesinde sonra gelir; D'de ise başta da olabilir:

struct BenimTür
{
    // C++ söz dizimi: parametre listesinden sonraki const,
    // işlevin nesneyi değiştirmeyeceği garantisini verir:
    void foo() const
    {
        // ...
    }
 
    // Aynı şekilde, baştaki const da aynı anlama gelir:
    const void bar()
    {
        // ...
    }
}

Derslerde bunlardan ikincisini kullandığım halde ona hiç ısınamadım. Dönüş türü ile ilgili olmadığı halde dönüş türünün yanına yazılması bence kafa karıştırıyor.

Ek not: Dönüş türünün const olduğunu belirtmek için o parantez içine alınır:

class BaşkaTür
{
    // ...
}
 
struct BenimTür
{
// ...
 
    BaşkaTür birÜye;
 
    // Bu ise farklıdır; döndürülen nesnenin
    // değiştirilemeyeceği anlamına gelir:
    const(BaşkaTür) baz()
    {
        // ...
        return birÜye;
    }
}

D.erhane'nin şu derslerini gözden geçirdim ve üye işlevlerle ilgili olan const'ları parametre listesinden sonra yazdım:

- const ref Parametreler ve const Üye İşlevler: http://ddili.org/ders/d/const_uye_islevler.html

- İşleç Yükleme ... ve problem çözümleri: http://ddili.org/ders/d/islec_yukleme.html

- Türeme: http://ddili.org/ders/d/tureme.html

- Object: http://ddili.org/ders/d/object.html

Bundan sonra da öyle yapacağım... :)

Ali
Doğrulama Kodu: VeriCode Lütfen resimde gördüğünüz doğrulama kodunu girin:
İfadeler: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Özel Karakterler:
Bağlı değilsiniz. · Şifremi unuttum · ÜYELİK
This board is powered by the Unclassified NewsBoard software, 20100516-dev, © 2003-10 by Yves Goergen
Şu an: 2017-11-19, 06:09:44 (UTC -08:00)