SORU
17 Ocak 2012, Salı


Dönüş C kurucusu türü ne#?

this bağlantı ve Java için bu soruyu sordum

Java bazı cevaplar var.Şimdi C bilmek istiyorum#.

Bu bildiğimiz gibi# kurucu bir C için herhangi bir geri dönüş tipi eklemek zorunda değiliz.

class Sample{
  .....
  Sample(){
    ........
  }
}

Eğer bir constructor oluşturuyoruz eğer Amaç C, sınıf için bir işaretçi döndürür. Ama zorunlu değil, bence.

AClass *anObject = [[AClass alloc] init];//init is the constructor with return type a pointer to AClass

Benzer şekilde, yapıcı bir yöntem dönüştürülen kendi sınıfı için bir başvuru döndürmek mi?

Bu gibi:

class Sample{
    .....
    Sample Sample(){
      ........

      return this;
    }
}

Derleyici dönüş türü Ekle aynı sınıf için bir referans kurucu mu? Bir kurucu ne oluyor? Bu çalışma için herhangi bir referans var mı?

CEVAP
17 Ocak 2012, Salı


GöreC# 4.0 Dil Belirtimibölüm 1.6:

Sınıfları yeni bir örneği için bellek ayırır new operatörü kullanılarak oluşturulur, örneğini başlatmak için yapıcı çağırır ve bu örneği başvurusu döndürür.

Bellek ayrılırken, kurucusuna yeni ayrılan nesnenin bir referans geçirilmesi ve daha sonra bu örneği başvurusu iade sorumlusu new operatörüdür. Bu mekanizma aynı zamanda bölüm 7.6.10.1 açıklanmıştır:

Bu çalıştırma bir işlemnesne oluşturma-deyimformun T new T(A),sınıf-tipya da biryapı tipiA isteğe bağlı bağımsız değişken listesi, aşağıdaki adımlardan oluşur:

  • Tsınıf-tip:

    • T sınıfının yeni bir örneğini tahsis edilir. Eğer yeterli ise yok bellek yeni örneği, tahsis için kullanılabilir System.OutOfMemoryException ve daha ileri adımlar atılır idam.

    • Yeni örneği tüm alanlar varsayılan olarak başlatılır değerleri (madde 5.2).

    • Yapıcıyı göre çağrılır üye işlev çağırma kuralları (madde 7.5.4). Yeni bir başvuru ayrılan örneği otomatik olarak yapıcıyı geçirilir ve örneği this olarak sınıf içinden erişilebilir.

  • [...]

Bu yapıcı anlamına gelirper sehiçbir geri dönüş tipi (void).

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BigDawsVlogs

    BigDawsVlogs

    17 HAZİRAN 2013
  • DrakeVEVO

    DrakeVEVO

    17 AĞUSTOS 2009
  • TWiT Netcast Network

    TWiT Netcast

    27 EKİM 2005