başvuru sınıfı ve başvuru yapısı (C++/CLı ve C++/CX)ref class and ref struct (C++/CLI and 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.The ref class or ref struct extensions declare a class or struct whose object lifetime is administered automatically. Nesne artık erişilebilir olmadığında veya kapsam dışına geçtiğinde bellek serbest bırakılır.When the object is no longer accessible or goes out of scope, the memory is released.

Tüm Çalışma ZamanlarıAll Runtimes

SözdizimiSyntax

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 {};

ParametrelerParameters

class_accessclass_access
Seçim Sınıf veya yapının derleme dışındaki erişilebilirliği.(Optional) The accessibility of the class or struct outside the assembly. Olası değerler şunlardır public ve private ( private varsayılandır).Possible values are public and private (private is the default). İç içe geçmiş sınıflar veya yapılar class_access tanımlayıcısına sahip olamaz.Nested classes or structs cannot have a class_access specifier.

adaname
Sınıf veya yapının adı.The name of the class or struct.

icisimodifier
Seçim abstract ve Sealed geçerli değiştiriciler.(Optional) abstract and sealed are valid modifiers.

inherit_accessinherit_access
Seçim Base_type erişilebilirliği.(Optional) The accessibility of base_type. İzin verilen tek erişilebilirlik, public ( public varsayılandır).The only permitted accessibility is public (public is the default).

base_typebase_type
Seçim Temel tür.(Optional) A base type. Ancak, bir değer türü temel tür olarak çalışamaz.However, a value type cannot act as a base type.

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.For more information, see the language-specific descriptions of this parameter in the Windows Runtime and Common Language Runtime sections.

AçıklamalarRemarks

Başvuru sınıfı veya değer sınıfıyla belirtilen bir nesnenin varsayılan üye erişilebilirliği private .The default member accessibility of an object declared with ref class or value class is private. Ve ref struct veya Value struct ile belirtilen bir nesnenin varsayılan üye erişilebilirliği public .And the default member accessibility of an object declared with ref struct or value struct is public.

Bir başvuru türü başka bir başvuru türünden devralırsa, taban sınıftaki sanal işlevlerin açıkça geçersiz kılınabilmesi gerekir ( geçersiz kılmaile) veya gizli ( Yeni (vtable 'da yeni yuva)).When a reference type inherits from another reference type, virtual functions in the base class must explicitly be overridden (with override) or hidden (with new (new slot in vtable)). Türetilmiş sınıf işlevlerinin de açıkça işaretlenmiş olması gerekir virtual .The derived class functions must also be explicitly marked as virtual.

Bir türün başvuru sınıfı veya başvuru yapısı, ya da bir değer sınıfı veya değer yapısı olup olmadığı derleme zamanında algılamak için, veya kullanın __is_ref_class (type) __is_value_class (type) __is_simple_value_class (type) .To detect at compile time whether a type is a ref class or ref struct, or a value class or value struct, use __is_ref_class (type), __is_value_class (type), or __is_simple_value_class (type). Daha fazla bilgi için bkz. tür nitelikleri Için derleyici desteği.For more information, see Compiler Support for Type Traits.

Sınıflar ve yapılar hakkında daha fazla bilgi için bkz.For more information on classes and structs, see

Windows Çalışma ZamanıWindows Runtime

AçıklamalarRemarks

Bkz. başvuru sınıfları ve yapıları ve değer sınıfları ve yapıları.See Ref classes and structs and Value classes and structs.

ParametrelerParameters

base_typebase_type
Seçim Temel tür.(Optional) A base type. Bir başvuru sınıfı veya başvuru yapısı sıfır veya daha fazla arabirimden ve sıfır veya bir başvuru türünden kalıtımla alabilir.A ref class or ref struct can inherit from zero or more interfaces and zero or one ref types. Değer sınıfı veya değer yapısı yalnızca sıfır veya daha fazla arabirimden devralınabilir.A value class or value struct can only inherit from zero or more interfaces.

Başvuru sınıfını veya ref struct anahtar sözcüklerini kullanarak bir nesnesi bildirdiğinizde, nesnesine nesnesine bir tanıtıcı erişilir; diğer bir deyişle, nesneye yönelik bir başvuru sayacı işaretçisi.When you declare an object by using the ref class or ref struct keywords, the object is accessed by a handle to an object; that is, a reference-counter pointer to the object. Belirtilen değişken kapsam dışına geçtiğinde, derleyici temel nesneyi otomatik olarak siler.When the declared variable goes out of scope, the compiler automatically deletes the underlying object. Nesne, çağrıda bir parametre olarak kullanıldığında veya bir değişkende depolanıyorsa, nesne tanıtıcısı aslında geçirilir veya depolanır.When the object is used as a parameter in a call or is stored in a variable, a handle to the object is actually passed or stored.

Değer sınıfını veya Value struct anahtar sözcüklerini kullanarak bir nesnesi bildirdiğinizde, belirtilen nesnenin nesne ömrü denetimli değildir.When you declare an object by using the value class or value struct keywords, the object lifetime of the declared object is not supervised. Nesnesi diğer standart C++ sınıfı veya yapısına benzer.The object is like any other standard C++ class or struct.

GereksinimlerRequirements

Derleyici seçeneği: /ZWCompiler option: /ZW

Ortak Dil Çalışma ZamanıCommon Language Runtime

AçıklamalarRemarks

Aşağıdaki tabloda, C++/clispecific tüm çalışma zamanları bölümünde gösterilen sözdizimindeki farklılıklar listelenmiştir.The following table lists differences from the syntax shown in the All Runtimes section that are specific to C++/CLI.

ParametrelerParameters

base_typebase_type
Seçim Temel tür.(Optional) A base type. Bir başvuru sınıfı veya başvuru yapısı , sıfır veya daha fazla yönetilen arabirimden ve sıfır ya da bir başvuru türünden devralınabilir.A ref class or ref struct can inherit from zero or more managed interfaces and zero or one ref types. Değer sınıfı veya değer yapısı yalnızca sıfır veya daha fazla yönetilen arabirimden devralınabilir.A value class or value struct can only inherit from zero or more managed interfaces.

Ref sınıfı ve ref struct anahtar sözcükleri derleyiciye sınıf veya yapının yığına ayrılacağını söyler.The ref class and ref struct keywords tell the compiler that the class or structure is to be allocated on the heap. Nesne, çağrıda bir parametre olarak kullanıldığında veya bir değişkende depolanıyorsa, nesne başvurusu aslında geçirilir veya depolanır.When the object is used as a parameter in a call or is stored in a variable, a reference to the object is actually passed or stored.

Değer sınıfı ve değer yapısı anahtar sözcükleri derleyiciye ayrılan sınıf veya yapının değerinin işlevlere geçtiğini veya üyelerde depolandığını söyler.The value class and value struct keywords tells the compiler that the value of the allocated class or structure is passed to functions or stored in members.

GereksinimlerRequirements

Derleyici seçeneği: /clrCompiler option: /clr

Ayrıca bkz.See also

.NET ve UWP için bileşen uzantılarıComponent Extensions for .NET and UWP