ref sınıfı ve başvuru yapısı (C++/CLI ve C++/CX)
Başvuru sınıfı veya başvuru yapısı uzantıları, nesne ömrü otomatik olarak yönetilen bir sınıf veya yapı bildirir. Nesne artık erişilebilir olmadığında veya kapsamın dışına çıktığında bellek serbest bırakılır.
Tüm Çalışma Zamanları
Sözdizimi
class_access ref class name modifier : inherit_access base_type {};
class_access ref struct name modifier : inherit_access base_type {};
class_access value class name modifier : inherit_access base_type {};
class_access value struct name modifier : inherit_access base_type {};
Parametreler
class_access
(İsteğe bağlı) Sınıfın veya yapının derleme dışında erişilebilirliği. Olası değerler ve public
private
(private
varsayılan değerdir). İç içe sınıfların veya yapıların class_access tanımlayıcısı olamaz.
ad
Sınıfın veya yapının adı.
Değiştirici
(İsteğe bağlı) soyut ve korumalı geçerli değiştiricilerdir.
inherit_access
(İsteğe bağlı) base_type erişilebilirliği. İzin verilen tek erişilebilirlik ( public
public
varsayılandır).
base_type
(İsteğe bağlı) Temel tür. Ancak, bir değer türü temel tür olarak davranamaz.
Daha fazla bilgi için Windows Çalışma Zamanı ve Ortak Dil Çalışma Zamanı bölümlerinde bu parametrenin dile özgü açıklamalarına bakın.
Açıklamalar
Ref sınıfı veya değer sınıfı ile bildirilen bir nesnenin varsayılan üye erişilebilirliğidirprivate
. Ayrıca, başvuru yapısı veya değer yapısı ile bildirilen bir nesnenin varsayılan üye erişilebilirliği de şeklindedirpublic
.
Bir başvuru türü başka bir başvuru türünden devraldığında, temel sınıftaki sanal işlevler açıkça geçersiz kılınmalıdır (geçersiz kılma ile) veya gizlenmelidir (yeni (vtable'da yeni yuva ile)). Türetilmiş sınıf işlevleri de açıkça olarak virtual
işaretlenmelidir.
Derleme zamanında bir türün bir başvuru sınıfı mı yoksa başvuru yapısı mı yoksa değer sınıfı mı yoksa değer yapısı mı olduğunu algılamak için , __is_value_class (type)
veya __is_simple_value_class (type)
kullanın__is_ref_class (type)
. Daha fazla bilgi için bkz . Tür Özellikleri için Derleyici Desteği.
Sınıflar ve yapılar hakkında daha fazla bilgi için bkz.
Yıkıcılar ve sonlandırıcılar: Nasıl yapılır: Sınıfları ve yapıları tanımlama ve kullanma (C++/CLI)
Nasıl yapılır: C# Tarafından Kullanılması için Yerel Sınıfı Sarmalama
Windows Çalışma Zamanı
Açıklamalar
Bkz . Başvuru sınıfları ve yapıları ile Değer sınıfları ve yapıları.
Parametreler
base_type
(İsteğe bağlı) Temel tür. Bir başvuru sınıfı veya başvuru yapısı sıfır veya daha fazla arabirimden ve sıfırdan veya bir başvuru türünden devralabilir. Değer sınıfı veya değer yapısı yalnızca sıfırdan veya daha fazla arabirimden devralabilir.
Ref sınıfını veya başvuru yapısı anahtar sözcüklerini kullanarak bir nesne bildirdiğinizde, nesneye bir nesnenin tanıtıcısı tarafından erişilir; yani nesnenin başvuru sayacı işaretçisi. Bildirilen değişken kapsamın dışına çıktığında, derleyici temel alınan nesneyi otomatik olarak siler. Nesne bir çağrıda parametre olarak kullanıldığında veya bir değişkende depolandığında, nesnenin tanıtıcısı geçirilir veya depolanır.
Değer sınıfını veya değer yapısı anahtar sözcüklerini kullanarak bir nesne bildirdiğinizde, bildirilen nesnenin nesne ömrü denetimli değildir. Nesnesi diğer standart C++ sınıfı veya yapısı gibidir.
Gereksinimler
Derleyici seçeneği: /ZW
Ortak Dil Çalışma Zamanı
Açıklamalar
Aşağıdaki tabloda, Tüm Çalışma Zamanları bölümünde gösterilen ve C++/CLI'ya özgü söz diziminden farklar listelenir.
Parametreler
base_type
(İsteğe bağlı) Temel tür. Bir başvuru sınıfı veya başvuru yapısı , sıfır veya daha fazla yönetilen arabirimden ve sıfır veya bir başvuru türünden devralabilir. Değer sınıfı veya değer yapısı yalnızca sıfır veya daha fazla yönetilen arabirimden devralabilir.
ref sınıfı ve ref yapısı anahtar sözcükleri derleyiciye sınıfın veya yapının yığında ayrılacağını söyler. Nesne bir çağrıda parametre olarak kullanıldığında veya bir değişkende depolandığında, nesneye bir başvuru geçirilir veya depolanır.
Değer sınıfı ve değer yapısı anahtar sözcükleri, derleyiciye ayrılan sınıfın veya yapının değerinin işlevlere geçirildiğini veya üyelerde depolandığını söyler.
Gereksinimler
Derleyici seçeneği: /clr