托管 C++参考类
关于什么是ref class
以及何时将类声明为“ref class”,有什么好的网站或解释吗?
msdn上的解释对我来说还不够,
base_type(可选)
基本类型。引用类或引用结构可以继承零个或多个托管接口以及零个或一个引用类型。值类或值结构只能从零个或多个托管接口继承。
参考
ref
关键字告诉编译器该类或结构将在堆上分配,并且对其的引用将传递给函数或存储在类成员中。value
关键字告诉编译器类或结构中的所有数据都传递给函数或存储在成员中。
Any good site or explanation on what is a ref class
and when to declare a class to be a "ref class"?
The explanation on msdn wasn't enough for me,
base_type(optional)
A base type. A ref class or ref struct can inherit from zero or more managed interfaces and zero or one ref types. A value class or value struct can only inherit from zero or more managed interfaces.
ref
The
ref
keyword tells the compiler that the class or structure will be allocated on the heap and a reference to it will be passed to functions or stored in class members. Thevalue
keyword tells the compiler that all of the data in the class or structure is passed to functions or stored in members.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
基本上,
ref class
是一个 CLR 类。它相当于 C# 中的class
。这将创建一个由 CLR 管理的引用类型。如果您想创建一个可在 C# 中使用的类,通常会创建一个
ref class
。 (ref struct
,顺便说一句,做完全相同的事情,但使用 C++ 的标准类与 struct 默认可访问性规则。)此外,仅供参考 - 为了创建值类型 (
struct
(C# 中)),您可以使用值类
或值结构
。Herb Sutter 的帖子对其中许多新关键字进行了很好的解释关于 C++/CLI 关键字。如果您是 C++/CLI 新手,但有扎实的 C++ 背景,那么这是一个有用的参考。
Basically, a
ref class
is a CLR class. It's the equivalent ofclass
in C#.This creates a reference type managed by the CLR. If you want to make a class that's usable from C#, you'd normally create a
ref class
. (ref struct
, by the way, does exactly the same thing, but with C++'s standard class vs. struct default accessibility rules.)Also, just for reference - in order to make a value type (
struct
in C#), you'd usevalue class
orvalue struct
.A good explanation of many of these new keywords is Herb Sutter's post on C++/CLI Keywords. This is a useful reference if you're new to C++/CLI, but have a solid C++ background.