Joe*_*orn 41
gcnew是一个操作符,就像new操作符一样,除了你不必删除用它创建的任何东西.这是摹 arbage Ç ollected.您可以使用gcnew创建.Net托管类型,使用gcnew创建非托管类型.
声明类型时,脱字号'^'与C / C ++中的'*'格格不入。
// pointer to new std::string object -> memory is not garbage-collected
std::string* strPtr = new std::string;
// pointer to System::String object -> memory is garbage-collected
System::String^ manStr = gcnew System::String;
Run Code Online (Sandbox Code Playgroud)
在描述托管对象时,我使用术语“指针”,因为就像C / C ++中的指针一样,可以将托管对象与“ nullptr”进行比较。C / C ++中的引用不能与“ nullptr”进行比较,因为它是现有对象的地址。
受管对象使用自动引用计数,这意味着当它们的引用计数为零时,它们将被自动销毁,尽管如果两个或多个无法访问的对象相互引用,则仍然会发生内存泄漏。请注意,自动引用计数并不是明智的自由表现,因此请明智地使用它。
| 归档时间: |
|
| 查看次数: |
46907 次 |
| 最近记录: |