何时对类和结构使用_gc? 我更新了一些旧C++代码,发现很多类被定义为: public __gc class NameOfClass{ }

何时对类和结构使用_gc? 我更新了一些旧C++代码,发现很多类被定义为: public __gc class NameOfClass{ },class,garbage-collection,c++-cli,interop,managed-c++,Class,Garbage Collection,C++ Cli,Interop,Managed C++,我找到了一些关于_gc的信息,但似乎只提供了VS2003的信息。我的VS 2005副本附带的MSDN文档表明_gc可能不再使用 我自己也是个C语言的人,所以我想确保在更新代码时不会出错。.NET 2中C++类的垃圾回收是否自动?或者“gc”关键字是否以某种方式被替换?它在某种程度上可能被完全替换;我相信BC仍然支持它,但VS2005引入了一种新的机制,使托管类型更加明确。见: 参考文献,旧语法的最大问题是它增加了标准C++语法的超载使用,这依赖于底层的类型,这在代码中非常混乱。新的语法对于区分管

我找到了一些关于_gc的信息,但似乎只提供了VS2003的信息。我的VS 2005副本附带的MSDN文档表明_gc可能不再使用


我自己也是个C语言的人,所以我想确保在更新代码时不会出错。.NET 2中C++类的垃圾回收是否自动?或者“gc”关键字是否以某种方式被替换?

它在某种程度上可能被完全替换;我相信BC仍然支持它,但VS2005引入了一种新的机制,使托管类型更加明确。见:


参考文献,旧语法的最大问题是它增加了标准C++语法的超载使用,这依赖于底层的类型,这在代码中非常混乱。新的语法对于区分管理句柄和非托管指针来说是更好的。

< P>您正在查看C++的托管扩展,这是一个简短而失败的尝试,使用一些相当新颖的语法向CLP添加CLR功能。我相信从2005开始,C++完全被支持,这是C++中CLR的一种完全实现。查看m的迁移建议。

谢谢您的帮助。这个链接正好满足了我的需要:在原始语言定义中,引用类类型的前面有_gc关键字。在修订后的语言中,_gc关键字将替换为两个分隔开的关键字之一:refclass或refstruct。