在C++中创建托管和非托管的.NET对象实例有什么区别?也就是说,以下两个语句之间有何不同:
StreamWriter ^stream = gcnew StreamWriter(fileName);
对比
StreamWriter *stream = new StreamWriter(fileName);
我的假设是,如果我使用gcnew关键字,为StreamWriter分配的内存将被垃圾回收器管理。另外,如果我使用指针(*)和new关键字,则必须调用delete来释放内存。
我的真正问题是:垃圾回收器是否会管理.NET对象内部分配的内存?例如,如果一个.NET对象实例化另一个对象,并且它超出了范围-即使我使用指针(*)和new关键字而不是gcnew和handle(^),垃圾回收器是否会管理该内存。