收藏 分销(赏)

CCLI学习入门(一):基础.doc

上传人:綻放 文档编号:8915113 上传时间:2025-03-07 格式:DOC 页数:3 大小:677.04KB 下载积分:8 金币
下载 相关 举报
CCLI学习入门(一):基础.doc_第1页
第1页 / 共3页
CCLI学习入门(一):基础.doc_第2页
第2页 / 共3页


点击查看更多>>
资源描述
C++/CLI 学习入门(一):基础 从今日开始,将前期学习《Visual C++ 2005 入门经典》(Ivor Horton 著 清华大学出版 社出版)的相关笔记整理到随笔中,希望能和 C++/CLI 爱好者分享学习过程中的心得。文中主 要内容和例子摘自原书相关章节,如有侵权,请留言或来信告知。 相比于 ISO/ANSI C++而言,C++/CLI 进行了大量的扩充,并且提供了大量的附加功能。 主要包括: • 在 C++/CLI 程序中,所有 ISO/ANSI 基本数据类型都可以使用,但在一些特 殊的上下文环境中,它们具有一些额外属性; • 在控制台程序中,C++/CLI 对键盘和命令行输出提供了自己的机制; • C++/CLI 中引入了 safe_cast 运算符,确保强制类型转换操作能够生成可检 验的代码; • C++/CLI 提供了另外一种基于类的枚举功能,其灵活性超过了 ISO/ANSI C ++中的 enum 声明。 一、基本数据类型 C++/CLI 中包括了所有 ISO/ASNI C++中的基本数据类型,算术运算也和本地 C++完全 一样。除此之外,C++/CLI 中还定义了 2 种整数类型,如表 1 所示: 表 1:C++/CLI 新增基本数据类型 类型 字节 值域 long long 8 从-9223372036854775808 到 9223372036854775807 Unsigned long long 8 从 0 到 18446744073709551615 指定 long long 数据类型时,需要在整数数值后面加 LL 或小写字母 ll,如 longlong big = 123456789LL; 指定 unsinged long long 类型时,需要在整数数值后面加 ULL 或小写字母 ull,如 unsigned long long huge = 123456789LL; 在 C++/CLI 中,每一个 ISO/ANSI C++基本类型名称都映射到 System 命名空间中定义的 值类类型。在 C++/CLI 程序中,ISO/ANSI C++基本类型名称都是 CLI 中对应值类类型的简略 形式。表 2 给出了基本类型、占用内存以及对应的值类类型。 表 2:基本类型与 CLI 值类型 基本类型 bool char singed char unsigned char short unsigned short int unsigned int long unsigned long long long unsigned long long float double long double wchar_t  字节 1 1 1 1 2 2 4 4 4 4 8 8 4 8 8 2  CLI 值类类型 System::Boolean System::SByte System::SByte System::Byte System::Int16 System::UInt16 System::Int32 System::UInt32 System::Int32 System::UInt32 System::Int64 System::UInt64 System::Single System::Double System::Double System::Char 默认情况下,char 类型被视为 singed char,因此其关联的值类类型为 System::SByte。如 果编译选项/J,则 char 默认为 unsigned char,此时关联为 System::Byte。System 为根命名空 间名,C++/CLI 的值类类型在这个空间中定义。此外 System 空间中还定义了许多其他类型,如 表示字符串的 String 类型、精确存储的十进制小数类型 Decimal 等等。 在 C++/CLI 中,关联的值类类型为基本类型添加了重要的附加功能。编译器在需要时,将 安排原值与关联类型之间的自动转换,其中从原值转换为关联类型成为装箱(boxing),反之称为 拆箱(unboxing)。根据上下文环境,这些变量将表现为简单的值或者对象。 由于 ISO/ANSI C++基本类型的名称是 C++/CLI 程序中值类类型名称的别名,所以原则 上 C++/CLI 代码中可用任何一种名称。 int count = 10; double value = 2.5; 与下面的代码是等价的 System::Int32 count = 10; System::Double value = 2.5; 上面 2 种代码是完全合法的,但应尽量使用基本类型名称,如 int 和 double,而不是 Syst em::Int32 和 System::Double。这是因为上面描述的这种映射关系仅适用于 Visual C++ 2005 及以上版本的编译器,其他版本编译器未必实现这种映射关系。 将基本类型转换为值类类型是 C++/CLI 的一个重要特征。在 ISO/ANSI C++中基本类型 与类类型完全不同,而在 C++/CLI 中,所有数据都以类类型的形式存储,包括值类型(存储在 堆栈上)和引用类型(存储在堆上)2 种。 例子:Fruit CLR 控制台项目 在 Visual Studio 2005 中创建 CLR Console Application 项目,输入名称 Ex2_12,将生 成如下文件 // Ex2_12.cpp : main project file. #include "stdafx.h" using namespace System;
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服