C++:最强大的.NET语言之装箱
编写引用和值类型
在C#中,通常用关键字class来声明一个引用类型,而用关键字struct来声明值类型:
在C#中,通常用关键字class来声明一个引用类型,而用关键字struct来声明值类型:
对于class和struct,C++已经有定义好了的含义,所以这在C++中行不通。在最初的语言设计上,放置在类前的关键字__gc表示这是一个引用类型,而关键字__value则表示这是一个值类型。class ReferenceType ...{}
struct ValueType ...{}
C++/CLI在那些不会与用户的其他标识符发生冲突的地方引入了"空隔"关键字。为了声明一个引用类型,只需在class或struct之前加上ref,类似地,可用value来声明值类型。__gc class ReferenceType ...{};
__value class ValueType ...{};
关于使用class还是struct,与默认状态下类成员的可见度有关,在CLR中,最大的不同之处在于,只支持公有继承。使用private(私有)或protected(保护)继承都将会导致编译错误,因此,显式声明公有继承是合法但却多余的。ref class ReferenceType ...{};
ref struct ReferenceType ...{};
![]()
value class ValueType ...{};
value struct ValueType ...{};
0
相关文章
