首页 > 编程语言 > 详细

C++/CLI 托管C++的数据类型介绍【2】

时间:2015-01-01 10:07:20      阅读:616      评论:0      收藏:0      [点我收藏+]

CLI

公共语言基础构造(Common Language Infrastructure),是由ECMA(欧洲计算机制造商协会)成立专家组,并结合ISO

、开发形成的一个可扩展语言标准

      C++/CLI目的是把C++带到CLI平台上,使C++能够在CLI平台上发挥最大的能力,而并非把C++约束在CLI平台(CLI本身也是

ISO标准化的)上。相反,原来标准C++的能力丝毫没有减弱,并且,通过C++/CLI中的标准扩展,C++具有了原来没有的一系列

的.NET特性以及动态编程能力。这些扩展并非是专有的,而是以一种标准的方式呈现。

 

值类型(value type)

[1] 常见类型

内置值类型(基本数据类型)、自定义值类型、枚举类型等;

 

[2] 说明   

类型既可以像 C++ 程序中那样使用堆栈语义在堆栈内存直接创建或通过类型指针* 使用 new 堆内存中动态创建类型对

象;也允许通过定义类型的句柄 ^,使用gcnew托管堆内存中创建类型托管对象。


引用类型(ref type)


[1] 常见类型

如:内置引用类型(Object和String)、指针(追踪句柄tracking handle、内部指针interior pointer、固定指针pinning 

pointer)、自定义引用类型、数组类型、装箱值类型、委托、接口等。

 

[2] 说明

通过类型的句柄 ^(类对象的“跟踪指针”,^ 发音为“hat”)用gcnew运算符在托管堆内存创建类型的托管对象,也可以

句柄 ^ 指向一个已经存在的同类型的托管对象。系统的垃圾收集器通过句柄 ^,自动地跟踪托管对象的使用状态,并且在托管对

象不再被使用时,自动撤消和回收托管对象所占用的托管内存的空间,程序员可以无须自己管理。

 

注意:

C++/CLI 扩展同时提供了确定性非确定性销毁托管对象内存的功能,支持使用deletegcnew 动态创建类型的托管对象执

行撤消的用法,该语法还包括使用delete[] 销毁一个托管数组所占用的内存,这个概念称为确定性销毁,注意,delete 实际上并没

有直接销毁托管对象的内存,它只是调用类型的析构函数对句柄 ^ 执行结束性的清理工作,而垃圾收集器将负责最终销毁和回收托

管对象的内存(非确定性销毁)。在处理表示某种资源(例如文件和网络连接)的对象时销毁顺序显然特别重要,因此,对于表示这种

资源的对象,最好采用手工删除的方法,以便确保内存何时被销毁。

 

[3] 初始化

将类型的句柄^初始化为“”,使用nullptr,如:

String ^firstPrompt =nullptr;

C++/CLI 托管C++的数据类型介绍【2】

原文:http://blog.csdn.net/aoshilang2249/article/details/42317367

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!