我读过这个例子
MyClass<T> ^ mc = new MyClass<T>();
给出了mc的句柄。
我还读过,使用^ mc会在cli-heap中创建自动清理的对象,所以我不必使用
delete mc
然后。
这不是仅使用^ -handles的论据吗?
答案 0 :(得分:2)
^
指针仅用于该语言的Microsoft公共语言运行时修改。如果您使用它们,则锁定项目仅使用Microsoft编译器。如果您正在寻找可移植性,则应使用必须手动删除的传统指针或使用新的C ++ 11功能。
答案 1 :(得分:1)
这是一个扩展,但你可以使用以下方法在标准C ++中实现类似的东西:
auto mc = std::make_unique<MyClass<T>>();
是的,这是使用std::unique_ptr
和/或std::shared_ptr
的充分理由。
答案 2 :(得分:0)
^
是一个托管指针。它是CLI的智能指针。
我还读到,使用
^mc
将在cli-heap中创建将自动清理的对象,因此我不必使用delete mc
。
是的,这是真的。 CLI运行时具有垃圾收集器。 但CLI是Windows特有的东西,所以它不能在其他环境中工作。