当前位置:
首页 > 教材教辅 > 大学 > C++程序设计基础(第4版)(下)pdf/doc/txt格式电子书下载

C++程序设计基础(第4版)(下)pdf/doc/txt格式电子书下载

本站仅展示书籍部分内容

如有任何咨询

请加微信10090337咨询

C++程序设计基础(第4版)(下)pdf/doc/txt格式电子书下载

书名:C++程序设计基础(第4版)(下)pdf/doc/txt格式电子书下载

推荐语:

作者:周霭如,徐红云,黄小兵

出版社:电子工业出版社

出版时间:2013-01-01

书籍编号:30467217

ISBN:9787121193859

正文语种:中文

字数:94016

版次:4

所属分类:教材教辅-大学

全书内容:

C++程序设计基础(第4版)(下)pdf/doc/txt格式电子书下载







前言


C++语言是优秀的计算机程序设计语言,它的功能相当强大。我们编写这本书的目的是,为没有任何程序设计基础的理工科大学生提供一本适用教材,使他们掌握从理论到实践都要求很高的C++语言。


一门课程的设置应该放在整个教学培养计划中统筹考虑。我们的教学目标不是马上培养一个会使用某种语言(例如C++语言)的程序员,而是强调对程序设计语言的理解和应用,“计算机语言”的角色是第一位的。所以,在教材编写和组织教学的过程中,我们力图通过对基本语法现象的剖析,由浅入深地让学生理解、掌握语言规则的原理,懂得用计算机指令的模式去分析和求解问题,并在机器上实现简单的程序。至于深入的算法及大程序的组织讨论,将由相关的后续课程(例如,数据结构、算法分析、计算方法、软件工程等)完成。因此,对高级程序设计语言规则的理解和应用是本教材编写的立足点。


我们根据多年从事计算机程序设计教学的经验,按照学生学习的认知规律,精心构造整本教材的体系和叙述方式,原则是:循序渐进、难点分散、通俗而不肤浅。本教材以语法范畴和程序组织为脉络,清晰渐进,从字、词、数据、表达式、语句,到函数、类,是语法范畴构成的基本脉络;在程序功能方面,则以组织数据和组织程序为另外一条基本脉络,并以渐进的、粒度扩大的方式逐步导入分析。


例如,数据的组织方式:基本数据类型—数组—结构—链表,体现如何利用基本数据类型根据需要组织数据;程序的组织方式:语句—函数—类,体现结构化思想和面向对象思想对程序不同的组织方式。


指针是C++语言的重要概念,是操作对象的有力工具。本书没有一般C语言、C++语言教材中专门的“指针”一章。我们从最简单的变量开始,建立对象的名和地址的概念,用对象的不同访问方式贯穿于各章节。从结构化程序设计到面向对象程序设计,采取了比较平滑的过渡。首先,在一开始介绍基本数据类型、程序流程控制、函数等结构化程序设计的基本知识时,就非正式地使用“对象”这个术语(从计算机程序的角度,任何占有存储空间的实体都是对象);继而,掌握结构到类的演变,给出对象的准确定义;进一步,展开介绍面向对象程序的几个基本特性,即封装、继承、多态和类属在C++语言中的实现方法。同时,我们在本书的阐述中体现一个思想:没有一种对所有问题都是最好的程序设计方法,对特定问题,选择合适的解决方案是程序员必备的素质。


本书之所以取名为《C++程序设计基础》,原因有二:第一,它不是一本C++语言手册,不可能包罗所有语法规则和特定版本提供的各种功能;第二,它没有涉及复杂的算法和工程化的面向对象分析设计方法。这两个问题与教材的定位相关。对第一个原因,我们认为学生在掌握了程序设计的基本概念和基本方法之后,可以通过语言平台(例如Visual C++)或者其他资料学习,拓展对语言功能的了解。我们在有关章节中,也做了类似的引导,例如,STL标准类库的介绍,这些内容提供给教师选择或学生自学。至于第二个原因,那些是计算机专业后续课程的教学内容。本书介绍的程序设计方法和使用到的算法都立足于基本概念和方法,所以,例程通常是简单和小规模的。


本书分别在2003年、2006年和2009年出版了1~3版。目前修订的第4版教材的例程以VC 2010为运行环境,全书分为上、下两册。上册在第3版的基础上增加了位运算和利用位运算的集合实现。下册介绍Visual C++在.Net环境的Windows应用程序设计。编写下册教材的原因是学生在掌握了C++程序设计基本语法之后,希望能够设计一个Windows界面的完整的应用程序。


下册共分7章,主要内容包括:C++/CLI托管编程、简单Windows应用程序、常用控件、复杂界面、图形图像、数据库应用、网络编程。


本书中配套的电子课件和例程的源代码,请登录华信教育资源网(www.hxedu.com.cn)免费下载。


本书可以作为高等学校计算机类、信息类、电类专业本科生高级语言程序设计课程教材,也可以作为教师、学生和C++语言爱好者的参考书。


本书的编写过程,是作者不断向学生学习,向同行学习,向C++语言学习的过程。在此,对所有使用本书的教师、学生,以及热心向我们提出宝贵意见的读者致以诚挚的感谢!希望继续得到读者的支持和帮助。本书参考了MSDN的部分内容。


作者


第1章 C++/CLI托管编程


C++/CLI(Common Language Infrastructure,通用语言结构)是为.NET平台特别设计的,它提供了既优雅又强大的新语法支持。VS.NET通过新的编译模式确保.NET框架CLI的一致性和可验证性,提供了C++本机环境和C++/CLI环境的无缝合并,把.NET的全部强大功能带给C++,同时也把C++强大的功能带给.NET。程序员可以非常自然地在.NET环境下开发C++应用程序。用托管代码编写C++程序,不需要重新学习新的编程语言,只需要了解一些简单的规则而已。


.NET框架提供的公共语言运行库的功能很庞大。本章主要通过控制台程序介绍C++/CLI基本语法,为了与后续Windows窗体应用程序衔接,编写了几个简单窗体应用程序。



1.1.NET框架


.NET是微软公司于2000年推出的面向互联网时代构筑的新一代平台,.NET框架(.NET Framework)简化了在高度分布式环境中开发应用程序的工作。一整套基于.NET框架设计的工具组件,被集成到Visual Studio.NET(简称VS.NET)开发环境中,包括Visual Basic.NET、Visual C++.NET、Visual C#.NET、Visual J#.NET、ASP.NET等多种开发工具。Visual C++.NET(简称VC.NET)是在C++基础上产生的,它的基本语法与C++相同,并具有很多新的特性,增强了C++的性能,使用起来也更加方便。


VS.NET是一套完整的开发工具,各种语言都使用相同的集成开发环境(IDE),开发人员可以轻松地创建用混合语言设计的解决方案。


.NET框架有两个主要的组件:公共语言运行库(CLR,Common Language Runtime)和.NET框架类库(FCL,Framework Class Library)。公共语言运行库在执行时管理代码,提供核心服务(如内存管理、线程管理和远程处理),强制实施严格的类型安全以及可确保安全性和健壮性的其他形式的代码准确性。类库是综合性的、面向对象的、可重用类型的集合,可用来开发应用程序。


(1)公共语言运行库


CLR是一个公共语言运行库。在.NET中,编译生成不是最终的机器码,而是一种中间语言(MSIL,Microsoft Interlanguage)代码。运行时由CLR的实时编译器(JIT,Just In Time)“翻译”成特定的机器代码,然后执行。


CLR支持多种语言,实现各种语言互操作。因此,CLR提供了公共类型系统(CTS,Common Type System),对数据类型提供定义、管理和使用的严格说明;提供了代码必须遵守公共语言规范(CLS,Common Language Standard),它包括许多应用程序所需要的基本语言功能。


通过CLR运行的代码称为托管(Managed)代码。在CLR控制之外的代码称为非托管(UnManaged)代码,通常称为本地代码。


通常所说的C++,是ISO/ANSI标准的,为执行普通的应用程序——非托管的C++而设计。而C++/CLI标准是专门为编写CLR托管程序而设计的,它是对C++的一种扩展。CLI的意思是通用语言结构(Common Language Infrastructure)。


所有VB.NET和C#.NET代码都是托管代码。但VC.NET提供了两种代码的互操作,允许程序员在项目中的不同程序模块之间,甚至同一个文件中,混合使用托管(C++/CLI)代码和本地(C++)代码,而不同语言编写的组件也可以进行交互。这体现了VC.NET的强大。


(2).NET框架类库


.NET框架类库FCL是一个与公共语言运行库紧密集成、可重用的类的集合。该类库包括类、接口、结构和枚举,它们可以加速和优化开发过程并提供对系统功能的访问。.NET框架类库使用CTS数据和CLS规范,是生成.NET应用程序、组件、控件的基础。.NET框架类库包含了将近100个命名空间。本书对涉及的命名空间会做简单说明。



1.2 简单控制台程序


在一个VC.NET应用程序中,既可以使用非托管代码,也可以使用托管代码。本节通过简单的控制台程序,初步认识托管代码和非托管代码的区别。



1.2.1 一个简单程序


【例1-1】在VC.NET的IDE中,建立一个CLR空项目,然后添加一个C++文件(cpp),输入以下代码。

C++程序设计基础(第4版)(下)pdf/doc/txt格式电子书下载

从上述程序中,很容易比较托管代码与非托管代码的区别。


(1)使用头文件和名空间


托管代码中使用的各种数据类型,以及表示控制台应用程序的标准输入流、输出流和错误流的Console类都在System名空间中声明,因此,需要语句

C++程序设计基础(第4版)(下)pdf/doc/txt格式电子书下载

而语句

C++程序设计基础(第4版)(下)pdf/doc/txt格式电子书下载

声明了非托管代码中输入、输出需要的头文件和名空间。


如果在IDE中建立CLR控制台程序,则系统自动生成程序框架如下:

C++程序设计基础(第4版)(下)pdf/doc/txt格式电子书下载

程序员可以在这个框架上添加和修改代码。注意,这时的

C++程序设计基础(第4版)(下)pdf/doc/txt格式电子书下载

指令不能删除,并且要放在起始位置。


(2)数据类型说明


在函数writeSquare中,变量len被说明为Double类型。数据类型是System名空间定义的结构。.NET框架把C++的类型关键字定义为对应结构的同义词。所以,在函数coutCircle中定义变量r类型为double,它是Double的同义词。


(3)控制台数据输入


在非托管代码中,iostream类预定义的标准输入、输出流对象cin、cout用于控制台程序的数据交互。而托管代码中,.NET框架类库System::Object::Console类定义了控制台应用程序的标准输入流、输出流和错误流。


上述程序中,用Console::ReadLine()方法获取输入的一行字符串,然后用Double::Parse方法把输入串转换为浮点数形式。Console类的Read有以下几种形式。


● 从标准输入流读取下一个字符:

C++程序设计基础(第4版)(下)pdf/doc/txt格式电子书下载

● 从标准输入流读取下一行字符:

C++程序设计基础(第4版)(下)pdf/doc/txt格式电子书下载

● 获取用户按下的字符或功能键,并显示在控制台窗口中。返回一个 ConsoleKeyInfo 对象,描述标准键常数和对应于按下的控制台键的Unicode 字符:

C++程序设计基础(第4版)(下)pdf/doc/txt格式电子书下载

● 获取用户按下的字符或功能键,可以选择是否显示在控制台窗口中:

C++程序设计基础(第4版)(下)pdf/doc/txt格式电子书下载

(4)控制台数据输出


Console类的Write方法和WriteLine方法用于输出数据,前者表示输出数据不换行,后者表示输出数据后插入行终止符。


输出方法有很多个重载版本,可以用于输出一个表达式项,也可以用于输出多个表达式项。若输出多个表达式项,则需要用格式字符串参数指定输出格式。语法形式如下:

C++程序设计基础(第4版)(下)pdf/doc/txt格式电子书下载

其中,<字符串>可以包含直接输出的字符串和用一对花括号“{}”相括的格式串。例如,在以下代码中:

C++程序设计基础(第4版)(下)pdf/doc/txt格式电子书下载

字符串\"girth of square={0:f}\"中的\"girth of square=\"是直接输出的字符串,\"{0:f}\"称为格式串,第1个数字0表示该格式用于逗号之后的第一个输出对象,冒号之后的\"f\"表示用定点格式输出。如果不指示格式符,例如只用\"{0}\",则系统自动选择最节省的输出格式。格式串之间用逗号分隔。<字符串>之后是<输出对象列表>,输出对象可以是表达式或具有输出值的对象名。


Console类还有一些常用的方法,见表1.1。这些方法的具体例程,请读者参阅MSDN资源。

表1.1 Console类其他常用方法

C++程序设计基础(第4版)(下)pdf/doc/txt格式电子书下载


1.2.2 格式串


格式设置是指将类、结构或枚举值的实例转换为字符串的表示形式,或者把字符串形式的数据还原为原始数据类型。.NET 提供了丰富的格式设置支持,以满足开发人员的各种要求。


格式串用于设置各输出项的输出格式。各种数据类(例如,Int32等)的ToString方法,Console类和 StreamWriter类的Write和WriteLine方法、String::Format 方法及StringBuilder::AppendFormat 方法都支持格式串。


一个格式串可以包含多个用花括号相括的格式项。格式项的语法形式为:

C++程序设计基础(第4版)(下)pdf/doc/txt格式电子书下载

①<索引>


“索引”参数说明符是一个从0开始的数字,标识输出参数列表中对应项的序号。参数说明符为0表示输出列表的第1个对象,参数说明符为1表示列表的第2个对象,其余类推。


通过指定相同的“索引”参数,多个格式项可以引用对象列表中的同一个元素。例如:

C++程序设计基础(第4版)(下)pdf/doc/txt格式电子书下载

分别将同一个object数值设置为十六进制数、科学记数法和数字格式输出。


每个格式项都可以引用列表中的任一对象。例如,如果有3个输出对象,则可以通过指定类似于\"{1}{0}{2}\"的复合格式字符串来设置第2个、第1个和第3个对象的格式。未被格式项引用的对象会被忽略。如果“索引”参数说明符的值超出对象列表范围的项,将导致运行时的异常。


②<对齐>


可选的“对齐”参数是一个带符号的整数,指示格式的字段宽度。


若“对齐”值小于设置了格式的字符串的长度,则“对齐”参数被忽略;


若“对齐”值为正数,则字段中设置格式的数据为右对齐;


若“对齐”值为负数,则字段中设置格式的数据为左对齐;


若需要填充,则使用空白。


③<格式说明>


可选的“格式说明”参数是适合正在设置格式的对象类型的格式字符串。数值型的“格式说明”参数可以附带示数精度指示。表1.2中列出了3种标准格式说明符的形式。在后续的例程中,将会应用这些格式说明符输出各种类型的数据。实际上,.NET还提供各种自定义格式和复合格式字符串,有需要的读者请查阅相关资源。


若不指定“格式说明”参数,则由系统根据对象类型选择输出格式。


若输出多个表达式的值,而不需要提示字符串,可以用这样的形式:

C++程序设计基础(第4版)(下)pdf/doc/txt格式电子书下载

此时,x、y、z的值以逗号分隔输出,输出格式由x、y、z的类型决定。


如果Write方法和WriteLine方法只用于输出一个表达式的值,则可以省略格式串。例如:

C++程序设计基础(第4版)(下)pdf/doc/txt格式电子书下载

表1.2 标准格式说明符

C++程序设计基础(第4版)(下)pdf/doc/txt格式电子书下载

续表

C++程序设计基础(第4版)(下)pdf/doc/txt格式电子书下载

注:① 表中圆括号内表示使用的输出格式说明符。


② 箭头“→”左边为要输出的数据,右边为按特定格式的输出结果。


1.3 C++/CLI数据


在C++的数据表示中,有基本数据类型、结构类型、指针类型等。这些数据类型在C++/CLI中都有对应的定义,并扩展了一系列的功能。


System命名空间包含基本类和基类、模板类,这些类定义常用的值和引用数据类型、事件和事件处理程序、接口、属性和异常处理。这个命名空间包括应用程序使用的基础数据类型的类,例如:Object(继承层次结构的根)、Byte、Char、Array、Int32和String等。



1.3.1 基本数据类型


.NET框架内置了C++基本数据类型的关键字,并把这些关键字预定义为System命名空间中托管类型的别名,当使用.NET Framework 类型编写代码时,可以应用C++相应的关键字。


表1.3列出了C++和C++/CLI类型标识符的对照,以及数据类型的取值范围。

表1.3 C++与C++/CLI基本类型标识符的对照

C++程序设计基础(第4版)(下)pdf/doc/txt格式电子书下载

续表

C++程序设计基础(第4版)(下)pdf/doc/txt格式电子书下载

C++/CLI数据类型与C++数据类型运算方式一致,并且重载了Object类的Parse方法,把数值数据转换成对应字符串。


Parse方法将数字的字符串表示形式转换为等效指定类型的数值,语法形式如下:

C++程序设计基础(第4版)(下)pdf/doc/txt格式电子书下载

其中,<type>为System名空间定义的数据类型。此方法可以用类或实例形式调用,例如:

C++程序设计基础(第4版)(下)pdf/doc/txt格式电子书下载

ToString方法将实例的数值转换为字符串表示形式:

C++程序设计基础(第4版)(下)pdf/doc/txt格式电子书下载

其中,format参数是指定格式的字符串。


【例1-2】数值与字符串的转换。程序运行结果如图1.1所示。

C++程序设计基础(第4版)(下)pdf/doc/txt格式电子书下载

C++程序设计基础(第4版)(下)pdf/doc/txt格式电子书下载

图1.1 数值与字符串的转换

【例1-3】格式化输出负整数和浮点数。程序运行结果如图1.2所示。

C++程序设计基础(第4版)(下)pdf/doc/txt格式电子书下载

C++程序设计基础(第4版)(下)pdf/doc/txt格式电子书下载

图1.2 格式化输出负整数和浮点数


1.3.2 枚举类型


C++/CLI的枚举类型使用一个带空格的关键字enum class声明。例如:

C++程序设计基础(第4版)(下)pdf/doc/txt格式电子书下载

声明一个枚举类型后,可以建立它的实例(变量)。托管枚举数据与C++枚举数据在使用上有所区别:


托管枚举值需要通过域运算符或枚举名来访问。


托管枚举值可以通过默认G格式或F格式输出枚举定义的字符串,通过D格式或X格式输出枚举序值。


托管枚举类型数据不能像C++枚举类型数据那样直接与整数或其他简单类型数据进行运算。若要用托管枚举类型数据与其他类型数据进行运算,必须使用类型转换。


【例1-4】格式化枚举值。程序运行结果如图1.3所示。

C++程序设计基础(第4版)(下)pdf/doc/txt格式电子书下载

C++程序设计基础(第4版)(下)pdf/doc/txt格式电子书下载

图1.3 格式化输出枚举值

建立Windows窗体应用程序时,需要通过控件来显示数据。文本类的控件都有Text属性,它的类型是String。当把一个String类型值赋给控件的Text属性时,这些文本数据就在控件上显示出来了。


验证使用控件显示文本,需要创建Visual C++Windows窗体应用程序,并在窗体上建立显示数据用的文本框TextBox控件和执行代码的命令按钮Button控件。


有关Windows程序的基本界面设计详细操作请参阅第3章。


【例1-5】在文本框中显示枚举数据。使用String::Format可以把枚举数据显示在文本控件上。创建Windows应用程序后,在窗体上建立一个文本框控件textBox1,把它的MultiLine属性设为True;再建立一个按钮控件button1,并编写button1_Click鼠标单击事件函数。程序运行结果如图1.4所示。

C++程序设计基础(第4版)(下)pdf/doc/txt格式电子书下载

C++程序设计基础(第4版)(下)pdf/doc/txt格式电子书下载

图1.4 在文本框中显示枚举数据


1.3.3 字符与字符串


字符和字符串是程序中常用的数据。在.NET中,System名空间的Char结构和String类分别定义了字符和字符串,它们还可以与C++的字符、字符串进行转换。


1.字符


.NET使用Char结构表示Unicode字符。Unicode称为统一码、万国码,是一种国际标准字符集,它为世界各种语言绝大多数已知的字符集定义了唯一的16位二进制编码,以满足计算机跨语言、跨平台进行文本转换、处理的要求。Unicode 字符包括基本 ASCII 字符集、各种其他字母、重音符、货币符号、小数、音调符号以及数学和技术符号。


Char字符可以分为大写字母、小写字母、控制字符、货币符号、标点符号和数学符号等。字符的表示形式与C++一致,反斜杠\"\\\"表示为特殊意义的转义字符。


Char结构重载了基本算术运算和逻辑运算符,可以像C++的char类型数据一样方便地进行操作,以及在运算中做强类型转换。表1.4中列出了用于判断字符类别和数据转换的主要方法。

表1.4 Char的主要方法

C++程序设计基础(第4版)(下)pdf/doc/txt格式电子书下载

【例1-6】用控制台程序测试字符操作。

C++程序设计基础(第4版)(下)pdf/doc/txt格式电子书下载

【例1-7】用Windows窗体应用程序中的文本框中显示字符操作结果。测试以下程序需要在窗体上建立4个文本框和一个按钮,并编写按钮单击事件函数。

C++程序设计基础(第4版)(下)pdf/doc/txt格式电子书下载

2.字符串


C++/CLI字符串是System名空间定义的String类,其对象是Char对象的队列。String类提供了不同形式的构造函数、公有方法和运算符重载函数,可以很方便地进行String对象的操作。System::String类的操作方法与C++的String类很相似。表1.5中列出了String类的主要方法,这些方法的原型,读者可以查阅MSDN资料。一些方法如比较、连接、复制等,已经重载了运算符操作。

表1.5 String的主要方法

C++程序设计基础(第4版)(下)pdf/doc/txt格式电子书下载

String的Format方法把输出项替换为等效格式化的文本,用控件的Text属性显示数据时,可以达到类似控制台的数据格式化输出的效果。


【例1-8】在文本框中显示格式化数据。本例将整数和浮点数按格式转换成字符串。本程序在Windows窗体应用程序的窗体上建立一个命令按钮button1和一个文本框控件textBox1,用命令按钮的单击事件函数button1_Click在文本框textBox1上显示字符串。

C++程序设计基础(第4版)(下)pdf/doc/txt格式电子书下载

上述Format方法中,格式串由\"+\"连接3个子串运算符而成。第1个子串除了自身的字符外,还嵌入了格式变量{0,5:d},把整数123转换成长度为5的十进制数字符串;第2个子串中的格式变量{0:x}把整数123转换成十六进制形式字符串;第3个格式串中的格式变量{1:f2}把浮点数45.3456转换成精度为2的定点数形式字符串。程序运行结果如图1.5所示。

C++程序设计基础(第4版)(下)pdf/doc/txt格式电子书下载

图1.5 在文本框中显示格式化数据

【例1-9】在文本框中格式化显示多行数据。本例把文本框的Multiline属性设为True,以便显示多行文本。代码中的\"\\r\\n\"用于显示换行。程序运行结果如图1.6所示。

C++程序设计基础(第4版)(下)pdf/doc/txt格式电子书下载

C++程序设计基础(第4版)(下)pdf/doc/txt格式电子书下载

图1.6 在文本框中格式化显示多行数据

3.字符串转换


在C++中,习惯地用ASCII码的char*类型或basic_string类来表示字符串。但如果在文本控件中利用Text属性显示字符串,则要求Text属性的类型为System::String。String类的构造函数及Runtime::InteropServices命名空间的相应方法可以实现不同类型字符串之间的转换。下面通过代码进行简单说明。


① 将char*字符串转换成String字符串

C++程序设计基础(第4版)(下)pdf/doc/txt格式电子书下载

② 将string字符串转换成System::String字符串

C++程序设计基础(第4版)(下)pdf/doc/txt格式电子书下载

经过转换之后,systemstring就可以向控件的Text属性赋值了。例如:

C++程序设计基础(第4版)(下)pdf/doc/txt格式电子书下载

注意,若在Windows程序中使用C++的String类定义字符串,则需要包含string头文件和使用std命名空间:

C++程序设计基础(第4版)(下)pdf/doc/txt格式电子书下载

③ 将String字符串转换成char*和string字符串

C++程序设计基础(第4版)(下)pdf/doc/txt格式电子书下载

System::Runtime::InteropServices 命名空间提供托管代码与非托管代码的交互操作。Marshal::StringToHGlobalAnsi(s)把String类型字符串s的内容复制到非托管内存中,并转换为ANSI格式。ToPointer方法把内存实例转换为char*指针。这些详细资料可以从MSDN的Visual C++编程指南中查找。



1.3.4 日期时间


DateTime是System命名空间定义的结构,表示值范围在公元0001年1月1日午夜12:00:00 到公元9999年12月31日晚上11:59:59之间的日期和时间。时间值以100毫微秒为单位(该单位称为刻度)进行计量。DateTime类有不同形式的构造函数,见表1.6。表1.7中列出了DateTime的常用属性。

表1.6 DateTime的主要构造函数

C++程序设计基础(第4版)(下)pdf/doc/txt格式电子书下载

表1.7 DateTime的常用属性

C++程序设计基础(第4版)(下)pdf/doc/txt格式电子书下载

DateTime结构重载了必要的算术运算符,还提供了判断是否闰年的方法:

C++程序设计基础(第4版)(下)pdf/doc/txt格式电子书下载

其中,year参数是4位有效年份的整数。


【例1-10】DateTime的属性和判断闰年的方法。

C++程序设计基础(第4版)(下)pdf/doc/txt格式电子书下载

【例1-11】格式化输出当前的日期和时间。程序运行结果如图1.7所示。类似地,可以使用String::Format方法在文本控件上格式化地显示日期和时间数据。

C++程序设计基础(第4版)(下)pdf/doc/txt格式电子书下载

C++程序设计基础(第4版)(下)pdf/doc/txt格式电子书下载

C++程序设计基础(第4版)(下)pdf/doc/txt格式电子书下载

图1.7 格式化输出当前日期和时间


1.3.5 数组


System::Array类是支持C++/CLI语言数组array实现的基类,它提供数组的长度属性,以及创建、操作、搜索和排序数组的方法。用户应当使用由语言提供的array构造数组。


1.一维数组


array是一个类模板。声明托管数组的语法形式为:

C++程序设计基础(第4版)(下)pdf/doc/txt格式电子书下载

其中,type是数组元素类型,size是数组元素的数量,即数组长度。


例如,声明一个长度为5的整型数组:

C++程序设计基础(第4版)(下)pdf/doc/txt格式电子书下载

其中,关键字array以及尖括号中的数组元素类型int声明了数组对象。“^”表示myArray是一个数组的句柄(详见1.4节)。


关键字gcnew用于分配内存,这类似于C++中的动态数组。


声明托管数组的同时可以提供初始化值列表,和C++中的数组一样,初始化值列表中的元素数量不能大于数组的长度。如果初始化值列表的元素数量小于数组元素数量,则剩余元素简单地保存为默认值。例如:

C++程序设计基础(第4版)(下)pdf/doc/txt格式电子书下载

也可以使用初始化值列表确定数组长度。以下语句声明myArray3长度为5:

C++程序设计基础(第4版)(下)pdf/doc/txt格式电子书下载

2.高维矩阵数组


多维矩阵数组指的是数组的每行必须具有相同的列数。这种数组存放在一个连续的存储区段中,具有较快的访问速度。高维数组的声明形式为:

C++程序设计基础(第4版)(下)pdf/doc/txt格式电子书下载

其中,rank指定数组的维数,最多可以有32维;size参数用逗号分隔,用于指定各维的元素数量。


例如,以下代码声明一个3行4列的二维整型数组:

C++程序设计基础(第4版)(下)pdf/doc/txt格式电子书下载

其中,尖括号中的整数2表示myArray4是一个二维(行、列)数

....

本站仅展示书籍部分内容

如有任何咨询

请加微信10090337咨询

本站仅展示书籍部分内容
如有任何咨询

请加微信10090337咨询

再显示