• 类和结构(托管)


    语法

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

    参数

    class_access(可选)
    程序集外部的类或结构的可访问性。 可能值是 public 和 privateprivate 是默认值)。 嵌套类或结构不能具有 class_access 说明符。

    name
    类或结构的名称。

    modifier(可选)
    abstract 和 sealed 是有效修饰符。

    inherit_access(可选)
    base_type 的可访问性。 唯一允许的可访问性是 publicpublic 是默认值)。

    base_type(可选)
    基类型。 但是,值类型不能充当基类型。

    有过详细信息,请参阅 Windows 运行时 和 公共语言运行时 部分中此参数的特定于语言的描述。

    备注

    使用 ref class 或 value class 声明的对象的默认成员可访问性是 private。 而使用 ref struct或 value struct 声明的对象的默认成员可访问性是 public

    当某种引用类型继承自其他引用类型时,基类中的虚函数必须显式重写(使用 override)或隐藏(使用 新的 (在 vtable 的新槽))。 派生类函数还必须显式标记为 virtual

    若要在编译时检测类型是 ref class 还是 ref struct,或是 value class 还是 value struct,请使用 __is_ref_class (``type``)__is_value_class (``type``) 或 __is_simple_value_class (``type``)

    备注

    请参阅 Ref 类和结构和 Value 类和结构

    参数

    base_type(可选)
    基类型。 ref class 或 ref struct 可以继承自零个或多个接口以及零种或一种 ref 类型。 value class 或 value struct 只能继承自零个或多个接口。

    使用 ref class 或 ref struct 关键字声明对象时,对象通过对象句柄进行访问;即,指向对象的引用计数器指针。 声明的变量超出范围时,编译器会自动删除基础对象。 当对象在调用中用作参数或存储在变量中时,实际是在传递或存储该对象的句柄。

    使用 value class 或 value struct 关键字声明对象时,不会监督声明的对象的对象生存期。 该对象如同任何其他标准 C++ 类或结构一样。

    备注

    下表列出与所有运行时部分中显示的语法之间的特定于 C++/CLI 的差异。

    参数

    base_type(可选)
    基类型。 ref class 或 ref struct 可以继承自零个或多个托管接口以及零种或一种 ref 类型。value class 或 value struct 只能继承自零个或多个托管接口。

    ref class 和 ref struct 关键字会告知编译器要在堆上分配类或结构。 当对象在调用中用作参数或存储在变量中时,实际是在传递或存储该对象的引用。

    value class 和 value struct 关键字通知编译器,已分配类或结构的值已传递给函数或存储在成员中。

  • 相关阅读:
    毛坯房装修步骤/过程
    编译方向是个值得考虑的选择(转发)
    暖气片安装常识
    装修,别忘了水电改造图纸
    新年走起
    装修中期需要实时监督 水电防水墙体拆改提前核定
    【CF1558D】TopNotch Insertions
    【洛谷P5008】锦鲤抄
    【UOJ#26】Game
    directx学习笔记之四:LPD3DXSPRITE,屏幕输出图片
  • 原文地址:https://www.cnblogs.com/ouyangping/p/7940069.html
Copyright © 2020-2023  润新知