c++/CLI中见过这个符号:^ C++中我们用*来表示一个指针,在C++/CLI中,我们用符号^来表示句柄。 现在*用来指定CRT heap上的原生指针,而句柄是安全指针,它位于托
c++/CLI中见过这个符号:^
C++中我们用*
来表示一个指针,在C++/CLI中,我们用符号^
来表示句柄。
现在*
用来指定CRT heap上的原生指针,而句柄是安全指针
,它位于托管堆上。
你可以把句柄当成引用
来考虑,和原生指针不同的是,他们不会引起内存泄漏
,即便没有对它们进行适当的删除,因为GC会处理这些问题,并且他们没有一个固定的内存地址,所以在执行的时候它们会被移来移去。
%
对于^
就相当于&
对于*
N* pn = new N;//分配在原生heap上
n& rn = *pn;//绑定一个普通引用到原生对象
R^ hr = gcnew R;//分配在CLI heap上
r% rr = *hr;//绑定跟踪的引用到gc-lvalue
String^ fileName = "textfile.txt";
StreamWriter^ sw = gcnew StreamWriter(fileName);
If you use the sample program, notice thatyou use the
gcnew
keyWord instead ofnew
when creating a.net object
,and thatgcnew returns
a handle( ^ )
rather than a pointer( * )
:
using namespace System;
using namespace System::io;
int main()
{
String^ fileName = "textfile.txt";
StreamWriter^ sw = gcnew StreamWriter(fileName);
sw->WriteLine("Hi Major");
sw->Close();
Console::WriteLine("a new file ('{0}') has been written", fileName);
return 0;
}
到此这篇关于C++/CLI在vs上的安装和初步使用的文章就介绍到这了,更多相关C++ CLI安装使用内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
--结束END--
本文标题: C++/CLI在vs上的安装和初步使用教程
本文链接: https://www.lsjlt.com/news/129636.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0