欢迎来到天天文库
浏览记录
ID:13012432
大小:43.50 KB
页数:5页
时间:2018-07-20
《visual c++ 2008新特性:mfc的增强》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、VisualC++2008新特性:MFC的增强虽然在托管语言的发展方面C++似乎较之其他语言发展步调缓慢,但是C++语言的新功能依然不逊于任何其他托管语言。与VisualBasic这种日新月异的语言不同,C++语言一直保持其不变的风格是它的一个优良传统,当然C++的也并非永远一成不变,其每一步变化无不是经过反复推敲的经典之作。目前正在制定中的下一代C++标准C++0x将通过对语言本身的扩展来满足最近十年来开发人员对它提出的各式各样的需求。技术报告1(TR1)是这一标准建立过程中的过度产品,更多的语法特性将作为最终版本的一部分进行发布。标准模板
2、库数组现有的C++标准模板库中有个备受争议的设计,就是其没有引入定长数组,当然有很多办法解决这一问题,比如使用C语言风格的数组,或者使用vector甚至使用第三方类库,但是这些方法显然没有解决这一问题。所以为C++新标准添加定长数组简直是天经地义的,使用新数组集合的方法也非常简单,数组长度被作为模板的一个参数,而数组的操作方式和STL中的vector对象完全一致。 std::tr1::array的使用方法 1 #include "stdafx.h" 2 #include 3 #include 4 #
3、include 5 6 int _tmain(int argc, _TCHAR* argv[]) 7 { 8 std::tr1::array intArray = {4, 8, 10}; 9 std::tr1::array intArray2 = {4, 8}; 10 intArray2[2] = 10; 11 std::cout << ((intArray == intArray2)? std::string("Arrays are equal"): s
4、td::string("Arrays aren't equal") ); 12 std::cout << std::endl;13 for (std::tr1::array::const_iterator it = intArray2.begin(); 14 it != intArray2.end(); ++it) 15 {16 std::cout << " " << *it; 17 } 18 return 0;19 } 对于上面的代码有些内容需要引起注
5、意:1.在数组声明的过程中既可以定义全部内容也可以只定义一部分内容,编译器会判断数据类型和数组长度,并自动完成数组定义2.“==”操作符被重载过了,重载之后的操作符可以用于比较两个数组中的元素是否相同。3.迭代器的工作方式和之前的标准模板库中集合对象的使用保持一致VisualC++2008通过使用std::tr1名字空间引入了上面这些TR1的扩展功能。正则表达式虽然很多第三方工具已经在C++中实现了正则表达式功能,但是这些工具对于标准C++的整合远远没有达到大家所期望的程度。把正则表达式引入C++之后,正则表达式的运算结果就可以直接被STL中
6、的其他运算所引用,并且使用正则表达式的代码也可以被各种编译器编译。在TR1中引入的正则表达式类库basic_regex有点类似于标准C++中很重要的类库basic_string,对于一个basic_regex类,你需要指定的是使用char或者wchar字符作为参数。basic_regex类的字符内容是正则表达式字符和符号,basic_regex类支持许多种正则表达式标准,如basic,extended,ECMAScript,awk,grep,和egrep。在设置好正则表达式字符串之后,basic_regex类的对象通过一系列函数接收一个用于拆
7、分的字符串并进行正则匹配。用于正则匹配的函数有3个,regex_match,regex_search和regex_replace.其中regex_match函数用于判断接受的字符串是完全否匹配正则表达式,regex_search用于返回参数中符合正则表达式的字符串内容,返回对象是一个match_results。而regex_replace用于替换提交字符串中正则表达式匹配的内容。示例代码显示了如何使用正则表达式匹配一个电子邮件地址,并把匹配结果显示出来. tr1正则表达式的使用 1 2 #include "stdafx.h" 3 #incl
8、ude 4 #include 5 #include 6 using namespace std; 7
此文档下载收益归作者所有