托管 C++参考类

发布于 2024-10-12 01:50:20 字数 370 浏览 2 评论 0原文

关于什么是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. The value keyword tells the compiler that all of the data in the class or structure is passed to functions or stored in members.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

卖梦商人 2024-10-19 01:50:21

基本上,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 of class 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 use value class or value 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文