添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
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
(可选)程序集外部类或结构的可访问性。 可能的值为 publicprivateprivate 为默认值)。 嵌套类或结构不得包含 class_access 说明符。

类或结构的名称。

modifier
(可选)abstractsealed 是有效修饰符。

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

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

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

使用“ref class”或“value class”声明的对象的默认成员访问权限是 private。 而使用“ref struct”或“value struct”声明的对象的默认成员访问权限是 public

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

若要在编译时检测类型是 ref class 或 ref struct,还是 value class 或 value struct,请使用 __is_ref_class (type)__is_value_class (type)__is_simple_value_class (type)。 有关详细信息,请参阅编译器对类型特征的支持

有关类和结构的详细信息,请参阅

  • 实例化类和结构

  • 参考类型的 C++ 堆栈语义

  • 类、结构和联合

  • 如何:定义和使用类和结构 (C++/CLI) 中的析构函数和终结器

  • 用户定义的运算符 (C++/CLI)

  • 用户定义的转换 (C++/CLI)

  • 如何:包装本机类以供 C# 使用

  • 泛型类 (C++/CLI)

    Windows 运行时

    请参阅 ref class 和 ref struct 以及 value class 和 value struct

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

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

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

    编译器选项:/ZW

    公共语言运行时

    下表列出了与“所有运行时”部分中语法的 C++/CLI 专属区别。

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

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

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

    编译器选项:/clr

    适用于 .NET 和 UWP 的组件扩展

  •