C++程序设计第十六章NSIC++标准语法补充.docVIP

C++程序设计第十六章NSIC++标准语法补充.doc

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C程序设计第十六章NSIC标准语法补充

C++程序设计 第16章 ANSI C++标准语法补充 大多数C++语言系统都支持ANSI/ISO C++标准。本章介绍该标准中的部分内容,作为前面各章节的语法补充。本章将介绍逻辑型bool、命名空间namespace、两个修饰符explicit和mutable、运行时刻类型信息RTTI和typeid运算符、以及4种新型的强制类型转换运算符。本章各部分之间相对独立,相互之间没有严格次序。 16.1 逻辑型bool C语句中没有逻辑类型,而C++标准有逻辑型bool。逻辑型也被称为布尔型。逻辑值只有真true和假false两个值,而且只能进行逻辑运算。C语言用整数int来表示逻辑值,0值表示false,非0为true。整数表示逻辑值的缺点是算术运算的结果可直接作为逻辑值,而且“逻辑值”也可进行算术运算,这不符合高级编程语言的要求。 C++可定义bool类型变量,可直接赋值true或false,可作为关系表达式和逻辑表达式的计算结果。bool类型变量支持逻辑运算非!、与、或||运算。一个bool值在内存中占1字节,故此sizeof(bool)为1。但内部采用整数值0表示false,1表示true。 例16-1逻辑型bool的例子。 #include iostream #include iomanip using namespace std; void main(){ bool boolean = false; int x = 0; coutboolean is boolean \nEnter an integer:; cin x; coutinteger x is (x ? nonzero:zero) and interpreted as ; if (x) couttrue\n; else coutfalse\n; bool b = true; boolean = false b; coutboolean is boolean; cout\nboolean output with boolalpha manipulator is boolalphabooleanendl; coutsizeof(boolean)=sizeof(bool)endl; boolean = x * 3 10; if (boolean) cout x * 3 10endl; else cout x * 3 = 10endl; } 执行程序,输入45,输出结果如下: boolean is 0 Enter an integer:45 integer 45 is nonzero and interpreted as true boolean is 0 boolean output with boolalpha manipulator is false sizeof(boolean)=1 x * 3 10 本质上bool类型仍然是一个整型值。在cout输出时,仍然输出0或1,而不是false或true,除非用boolalpha作为格式控制符。另一个需要注意的是bool类型变量仍然可以进行算术运算,例如: bool b2 = true, b3 = false; bool b4 = b2 - b3; //bool型变量之间不应该允许算术运算。 对上面语句,编译器仅给出警告而不是错误。 但无论如何,引入bool类型本身就是一种改进,建议在C++程序中尽可能采用bool类型。 16.2 命名空间namespace 命名空间(namespace)是解决大程序中多个元素(如类、全局函数和全局变量)命名冲突的一种机制。当我们要把几个部分(往往来自不同的人员或团队)合并成为一个大程序时,往往就会出现命名冲突的问题:类名、全局函数名、全局变量名都可能重名。解决的方法就是把这些名字放在不同的命名空间中,在访问这些名字时使用各自的命名空间作为限定符。 16.2.1 命名空间的定义 命名空间类似文件系统中的目录,空间中的成员类似目录中的文件。全局空间相当根目录,一个目录名作为其中多个文件的命名空间,子目录作为嵌套空间,文件作为空间中的成员。同时一个命名空间也是一个作用域。 命名空间的基本规则如下: 一个程序所用的多个命名空间在相同层次上不重名; 在同一个命名空间中的所有成员名字不重复; 在一个命名空间中可以嵌套定义其内层的多个子空间。 定义命名空间的语法格式如下: namespace [空间名{一组成员} namespace Example{ //说明了一个Example空间 const double PI = 3.14159; //Example中的变

文档评论(0)

peain + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档