ANSIC++特征总结.docVIP

  1. 1、本文档共6页,可阅读全部内容。
  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文档。上传文档
查看更多
ANSIC特征总结

随着C++的普及,标准的指定成了C++发展的必然趋势。而制订此一标准的工作是由ANSI (American National Standards Institute,美国标准学会)与ISO (International Standardization Organization,国际标准组织)进行。 ??????? ANSI规则中的许多新规则都是对最初的C++进行的扩充。也可以不使用这些新的特征。这些新特征包括关键字mutable以及explicit。 ??????? 有一些修改的潜在作用很大。现在ANSI规则鼓励某些编程方法而抛弃其他一些编程方法。尽管在一段时间内不会放弃对老式编程方法的支持,但是有一些编程方法最终是要被淘汰掉的——这意味着编译器将给出警告并建议使用新的编程方法。迟早有一天会抛弃掉对这些旧方法的支持。 ??????? ANSI规则的主要改变包括: (1)新的头文件的载入方式 ????????在ANSI/ISO的C++标准里,定义了一个名为std的namespace,并将许多类定义在这个namespace。 ??????? 例如,旧方法载入头文件?? #include iostream.h ???????????????????? 新方法则修改为???? #include iostream ????????????????????????????????????????????????????? using namespace std ; (2)执行时间类信息 RTTI(Run-Time type Inforamtion) ??????? RTTI中文字面翻译为执行时间类信息,也就是在执行时判别数据的类型,例如:判别模板被什么类型套用? ??????? 首先在使用typeid前,必须include名为typeid的头文件。可以利用typeid判别某一变量的数据类型? ????????????????????????????????????????????? int a; ??????????????????????????????????????????????if(typeid(a)==typeid(int))??? // 判别a的数据类型是否为int ????????????????????????????????????????????????…… ??????? 或者取得变量的数据类型的名称?? char *data_type=typeid(a).name()??? //输出a的数据类型 (3)类型转换 ??????? C语言对所有的情况都使用一种类型转换运算符,在ANSI/ISO C++标准的草案中,新增了四种类型能够转换语法,分别针对四种特定的类型转换需要,以取代传统的类型转换。新增的类型转换语法能够更精确地控制程序、减少程序错误的产生。这四种新的类型转换运算符分别是:const_cast, dynamic_cast , reinteroret_cast,?? static_cast。 ????????const_cast (去除const属性) ????????const_cast操作符用来帮助调用那些应该使用而没有使用const关键字的函数。换句话说,就是供程序设计师在特殊情况下将限制为const成员函数的const定义解除,使其能更改特定属性。 ?????????????????????????????? ?例如:void display_num(double *p) ?????????????????????????????????????????? ?{ ???????????????????????????????????????????? printf(“The value is %2.3f\n”,*p); ??????????????????????????????????????????? } ????????????????????????????????????????????const double x; ??????????????????????????????????????????? display_num( x);??????????????? //Disallowed!? C++的规则禁止这样调用,因为一个const指针通常不能传递给一个非const类型的参数 ?????????????????????????????????????????? ?display_num(const_castdouble *( x));???????????????? //将 x由const double *类型转换为double *类型。 [NOTE]:当使用const_

文档评论(0)

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

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

1亿VIP精品文档

相关文档