如果我只是在C ++ / CLI程序中包含现有的标准C ++类,它会起作用吗?
在我的测试中,一切都很好,但每个程序都是如此吗?
答案 0 :(得分:5)
如果您实际将类更改为托管(gc)类,那么不会,它有时会中断。特别是,删除操作符的语义被更改,因为对象现在由垃圾收集器管理;删除对象可能不会释放任何内存。
答案 1 :(得分:3)
这是微软承诺的,是的。 (我昨天看了this video,他们在其中明确提到了这一点 - 特别是因为在C ++ 0x中添加nullptr
会对其造成损害。
所以,是的,如果您使用本机C ++程序并将其编译为C ++ / CLI,并且没有代码更改,那么是的,它仍然有效。
当然,如果您更改了代码(gcnew而不是新的和其他“托管”更改,当然,所有赌注都已关闭,您可能会或可能不会破坏代码)