科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件C++:最强大的.NET语言之装箱

C++:最强大的.NET语言之装箱

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

什么是装箱(boxing)?装箱是一种用来桥接数值和对象的机制。

作者:谢启东编译 来源:天极开发 2007年11月15日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
编写引用和值类型

  在C#中,通常用关键字class来声明一个引用类型,而用关键字struct来声明值类型:

class ReferenceType {}
struct ValueType {}

  对于class和struct,C++已经有定义好了的含义,所以这在C++中行不通。在最初的语言设计上,放置在类前的关键字__gc表示这是一个引用类型,而关键字__value则表示这是一个值类型。

__gc class ReferenceType {};
__value class ValueType {};

  C++/CLI在那些不会与用户的其他标识符发生冲突的地方引入了"空隔"关键字。为了声明一个引用类型,只需在class或struct之前加上ref,类似地,可用value来声明值类型。

ref class ReferenceType {};
ref struct ReferenceType {};

value class ValueType {};
value struct ValueType {};

  关于使用class还是struct,与默认状态下类成员的可见度有关,在CLR中,最大的不同之处在于,只支持公有继承。使用private(私有)或protected(保护)继承都将会导致编译错误,因此,显式声明公有继承是合法但却多余的。

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章