gpt4 book ai didi

c++ - 何时在托管 C++ 类上使用 __gc 关键字?

转载 作者:搜寻专家 更新时间:2023-10-31 00:16:36 25 4
gpt4 key购买 nike

我有一个 C++ 项目,我已经使用 C++/CLI 成功地用 .NET 类包装了它。我在托管 C++ 中定义包装器类。我是否需要将这些类标记为 __gc 以便对这些类进行垃圾回收?或者 .NET 框架是否会自动 GC 这些类,因为它们是托管类?

这是它当前声明的方式

public ref class Player {

我需要这样的东西吗?

__gc class Player { .. }

最佳答案

关键字 __gc 在以前的版本中使用(IIRC,直到 VS2003)。然后添加了新的特定于上下文的关键字(如 ref classvalue struct)。较新的编译器 (VS2005+) 会理解并建议使用较新的关键字。上下文关键字 ref class 足以说明此类是托管类。托管类只能使用 gcnew 关键字分配。编译器将引发错误 new is used for managed-classes。对于 VC++ (/clr),堆栈语义也可用。

这意味着以下内容也是有效的:

public ref class SomeClass{};

void foo()
{
SomeClass cls; // On stack!
}

关于c++ - 何时在托管 C++ 类上使用 __gc 关键字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15632408/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com