您不是在谈论(较旧的)托管C ++,而是关于C ++ / CLI,对吗?
在C#中,您的代码等同于
System.String str=new System.String();
在C ++ / CLI中,对象的句柄与C#中的引用相同 - 您有引用计数,垃圾收集器等。
另一方面,普通的C ++指针(在大多数情况下)是指向非托管对象的指针。您(当然)可以使用C ++指向托管对象的指针,就像在C#中使用指针一样(在不安全的代码中)。查看
here以获取有关C#中指针的详细说明,并查看
here以获取有关C ++ / CLI中指针的一些详细信息。那些指针不是由垃圾收集器处理的。