【转】在C++中^符号作用
来源:互联网 发布:软件 英语 编辑:程序博客网 时间:2024/05/17 03:21
托管扩展的一个最大的问题是对指针的使用。指针被用于各种各样的任务,而其情况也是复杂多变的,因而非常难以理解。在某一特定的代码段中要解读自己在和哪一种指针打交道需要有一定程度的天赋。这种复杂性在下一个版本中会被去掉。在Visual C++ 2005中,指针还是原原本本的C++指针。它们指向稳定的对象,而您则可以用指针进行算术操作。指向对象的指针的生命周期必须由开发人员显式管理。当使用指针时,运行库不会负责对指针带来的垃圾进行清理。
现在让我们看一下Visual C++ 2005的设计人员是如何解决这一问题的。与Visual Studio .NET 2003和Visual Studio 2005中使用new运算符返回指针不同,gcnew运算符返回一个“句柄”这是一种新构造,在语法中用“^”符号来表示。该句柄引用托管堆中的整个对象。也就是说,它们不能用来指向类型的内部,而编译器对它们的使用有许多限制,以此来强制执行这种行为,而这也可以帮助开发人员正确并安全地使用句柄。句柄不允许进行指针算术运算,也不可以被强制转换为空指针或是任何整数类型。然而,星号和箭头运算符仍被用来取消对它的引用。
这并不意味着您不能再获得一个指向垃圾回收堆上的指针。与在C#中组合&运算符与固定的关键字相似,在Visual C++ 2005中,pin_ptr抽象类型允许您检索指向托管堆上对象的钉住指针。只要这个指针存在,托管堆中的对象就会被钉住,这可以防止垃圾回收器在回收的过程中移动它。Visual C++ 2005还引入了跟踪引用运算符,用百分号(%)来表示。当在C++中引入本机的&引用运算符时,大多数开发人员都知道可以把它理解成一个指向对象的指针,在使用时是由编译器来自动清除的。在大多数情况下,%对^而言就像&对*一样。
- 【转】在C++中^符号作用
- C# 中@符号在字符串中的作用
- C# 中@符号在字符串中的作用
- “\”符号在cp中的作用(转)
- c#中@符号作用
- static在C中作用
- @“\”符号在cp中的作用@
- “\”符号在cp中的作用
- Delphi中 “@” “^” 符号的作用
- C++中“::”符号的作用
- C# 中符号的作用
- jQuery中$符号的作用
- PHP @unlink中@符号作用
- URL中#符号的作用
- PHP 中@符号的作用
- jQuery中$符号的作用
- %在c语言中起什么作用
- 在C语言中static的作用
- web.xml中配置spring的几种方式 以及 Spring获取Bean的几种方式
- Java instanceof 测试
- 西游记倒着演
- windows phone开发学习--CacheMode
- Android 数据库一次创建多个表
- 【转】在C++中^符号作用
- Android arChartengine 导入工程出错解决办法
- 判断点是否在三角形内
- autotools简单例子说明
- java常用集合框架图
- 【Android开发学习02】Android应用程序的调试
- 创建chrome右键菜单划词搜索扩展
- 研究人员有助的网站 呸子
- 开源的电子书阅读器项目