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

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;

时间: 2024-08-08 15:27:58

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

C++/CLI 托管C++的数组介绍【4】

托管数组实际是System::Array 类型的对象,因此在 C++/CLI 程序中创建的托管数组能使用该类提供的各种方法和属性. [1] 定义  [qualifiers] [cli::]array<[qualifiers]type[,dimension]> ^var; qualifiers  存储方式说明(可选项).可选择的存储方式包括:mutable, volatile,const,extern和 statc. array 托管数组定义的关键字,该关键字是定义在cli 名 域中的.托管程序

JavaOO视频-04【基本数据类型介绍02、数据类型转换】

转载请标明,http://www.gxabase.com视频内容:此节视频会接着给大家讲基本数据类型的介绍,包括:浮点型.字符型.布尔型.然后再为大家介绍学习八大基本数据类型必须掌握的数据类型转换这一知识点. JavaOO视频-04[基本数据类型介绍02.数据类型转换],布布扣,bubuko.com

JavaOO-03【EditPlus工具介绍、基本数据类型介绍01】

转载请标明,http://www.gxabase.com 视频内容:本节主要详细介绍编写Java程序的工具-EditPlus如何应用,如何利用EditPlus工具去编译和运行Java程序.接着介绍Java程序的编码规范,如何定义方法名/变量名/类名的规范.最后为大家介绍Java八大基本数据类型的应用. JavaOO-03[EditPlus工具介绍.基本数据类型介绍01],码迷,mamicode.com

MySQL数据类型介绍

一 选择数据类型的几个简单原则 1. 越小越好,越简单越好 一般情况下,应该尽量使用可以正确存储数据的最小最简单的数据类型.因为它们占用更小的磁盘,内存和CPU缓存,处理时需要的CPU周期也更少.但同时,在确定选择时也务必注意不要低估需要存储的值的范围,否则会给后期带来麻烦. 2. 尽量避免NULL NULL是列的默认属性,但通常情况下最好指定列为NOT NULL,除非真的需要存储NULL.因为含有NULL的列使得索引.索引统计和值比较都更加复杂,而且当可为NULL的列被索引时,每个索引记录需要

MySQL 中的数据类型介绍

MySQL 中的数据类型介绍 标签: mysql数据类型mysql全部数据类型mysql字段类型mysql数据存储mysql 2016-04-29 20:24 53643人阅读 评论(11) 收藏 举报  分类: 服务器及软件---MySQL数据库(4)  版权声明:http://blog.csdn.net/anxpp 目录(?)[+] 据我统计,MySQL支持39种(按可使用的类型字段统计,即同义词也作多个)数据类型.下面的介绍可能在非常古老的MySQL版本中不适用. 转载请注明出处:http

Redis常用数据类型介绍、使用场景及其操作命令

Redis常用数据类型介绍.使用场景及其操作命令 本文章同时也在cpper.info发布. Redis目前支持5种数据类型,分别是: 1.String(字符串) 2.List(列表) 3.Hash(字典) 4.Set(集合) 5.Sorted Set(有序集合) 下面就分别介绍这五种数据类型及其相应的操作命令. 1. String(字符串) String是简单的 key-value 键值对,value 不仅可以是 String,也可以是数字.String在redis内部存储默认就是一个字符串,被

sql server 数据类型介绍

SQL Server的数据类型介绍SQL 数据类型是数据的一种属性,表示数据所表示信息的类型.任何一种计算机语言都定义了自己的数据类型.当然,不同的程序语言都具有不同的特点,所定义的数据类型的各类和名称都或多或少有些不同. 系统原有的数据类型 SQLServer 提供了 25 种数据类型: Binary [(n)],Varbinary [(n)],Char[(n)],Varchar[(n)],Nchar[(n)],Nvarchar[(n)],Datetime, Smalldatetime,Dec

SQL数据类型介绍

在计算机中数据有两种特征:类型和长度.所谓数据类型就是以数据的表现方式和存储方式来划分的数据的种类.    在SQL Server 中每个变量.参数.表达式等都有数据类型.系统提供的数据类型分为几大类,如表4-2 所示. 其中,BIGINT. SQL_VARIANT 和TABLE 是SQL Server 2000 中新增加的3 种数据类型.下面分类讲述各种数据类型. 4.3.1 整数数据类型     整数数据类型是最常用的数据类型之一.     1.INT (INTEGER)INT (或INTE

2.Python基础:数据类型介绍

世界上大概有3000多种语言,其中汉语是使用人数最多的语言,英语是使用最广泛的语言,国际交流,一般都会说英语.计算机也一样,他也有自己的语言,一方面说计算机非常强大,能处理各种复杂的程序,另一方面他却远远比不上人类,那就是语言的辨识度. 2.1 数据类型介绍 int(整型) 在32位机器.整数位数为32位,取值范围-2-31~2-31-1 即-2147483648 - 2147483647 在64位系统,整数位为64位,取值范围为-2-63~2-63-1,即-922322720368547758