C++ 11会带来什么影响
1个回答
展开全部
C++11是自1998年C++首次被ISO标准化以来变化最大的一个新标准,它主要在以下两个方面对C++进行了革命性的改进和增强:
一方面,C++11让C++更加易于使用。我们都知道,C++以其语法简洁而著称于世,虽然简洁的语法受到编程高手们的喜爱。同时,C++也非常灵活而自由,我们几乎可以在C++中完成任何我们想要完成的事情。简洁、自由和灵活是一把双刃剑,它让C++拥有无限的能力,但同时也让C++在程序员们的心目中成为一门难学难用难以掌握的编程语言,特别是让一些初学者望而却步,阻碍了C++的进一步发展。为了改变这一现状,C++11加入了很多改善其易用性的语法特性,并从其他主流的编程语言(特别是Java)中借鉴吸收了很多旨在改善C++易用性的语法特点。例如,C++11提供了auto这种特殊的数据类型,使用它作为变量的数据类型,编译器可以根据变量的初始值自动推断其合理的真实数据类型,省去了程序员确定复杂变量的数据类型的繁琐;C++11开始支持Lambda表达式,让C++中匿名函数的定义和使用成为可能;C++11从Java和C#中借鉴了序列for循环语句,让针对某个容器的循环遍历更加简单;C++11从Java中借鉴了函数属性,从而可以对函数进行更加灵活的修饰。例如,我们可以使用noreturn指明一个函数没有返回值,也可以使用final限制某个虚函数被派生类重载,函数属性的引入满足了我们对函数的不同需求。
另一方面,C++11让C++的性能更高。相对于其他主流的高级编程语言而言,接近于低级语言的高性能表现,应该是C++最大的优势了。但是C++11并不满足于C++现有的性能表现,通过增加新的语法特性、改写标准库等手段,想榨干C++身上最后的一滴性能血液。例如,C++11提供了对右值引用、移动语义的完全支持,解决了从函数返回一个大对象的问题;利用新的语法特性对标准库进行了大规模的改写,极大地提高了标准库的性能表现;特别值得一提的是,为了适应当今越来越普及的并行计算,充分利用主流的多核CPU的计算资源,C++11在标准库中对并行计算提供了全面的支持,我们可以通过线程thread对象轻松完成线程的创建,也可以通过条件变量对线程的执行情况进行控制。对并行计算的完全支持,让C++11拥有了更加优异的性能表现。
正是C++11在这两个方面的大力改进,不仅进一步增强了C++在性能方面的优势,做到了扬长;同时也改善了C++的易用性,做到了避短,使得C++成为了一门“又快又好”的程序设计语言。这些新特性给C++注入了新的活力,使得C++重新焕发青春,带来C++的复兴。C++也必将续写它那不朽的传奇
一方面,C++11让C++更加易于使用。我们都知道,C++以其语法简洁而著称于世,虽然简洁的语法受到编程高手们的喜爱。同时,C++也非常灵活而自由,我们几乎可以在C++中完成任何我们想要完成的事情。简洁、自由和灵活是一把双刃剑,它让C++拥有无限的能力,但同时也让C++在程序员们的心目中成为一门难学难用难以掌握的编程语言,特别是让一些初学者望而却步,阻碍了C++的进一步发展。为了改变这一现状,C++11加入了很多改善其易用性的语法特性,并从其他主流的编程语言(特别是Java)中借鉴吸收了很多旨在改善C++易用性的语法特点。例如,C++11提供了auto这种特殊的数据类型,使用它作为变量的数据类型,编译器可以根据变量的初始值自动推断其合理的真实数据类型,省去了程序员确定复杂变量的数据类型的繁琐;C++11开始支持Lambda表达式,让C++中匿名函数的定义和使用成为可能;C++11从Java和C#中借鉴了序列for循环语句,让针对某个容器的循环遍历更加简单;C++11从Java中借鉴了函数属性,从而可以对函数进行更加灵活的修饰。例如,我们可以使用noreturn指明一个函数没有返回值,也可以使用final限制某个虚函数被派生类重载,函数属性的引入满足了我们对函数的不同需求。
另一方面,C++11让C++的性能更高。相对于其他主流的高级编程语言而言,接近于低级语言的高性能表现,应该是C++最大的优势了。但是C++11并不满足于C++现有的性能表现,通过增加新的语法特性、改写标准库等手段,想榨干C++身上最后的一滴性能血液。例如,C++11提供了对右值引用、移动语义的完全支持,解决了从函数返回一个大对象的问题;利用新的语法特性对标准库进行了大规模的改写,极大地提高了标准库的性能表现;特别值得一提的是,为了适应当今越来越普及的并行计算,充分利用主流的多核CPU的计算资源,C++11在标准库中对并行计算提供了全面的支持,我们可以通过线程thread对象轻松完成线程的创建,也可以通过条件变量对线程的执行情况进行控制。对并行计算的完全支持,让C++11拥有了更加优异的性能表现。
正是C++11在这两个方面的大力改进,不仅进一步增强了C++在性能方面的优势,做到了扬长;同时也改善了C++的易用性,做到了避短,使得C++成为了一门“又快又好”的程序设计语言。这些新特性给C++注入了新的活力,使得C++重新焕发青春,带来C++的复兴。C++也必将续写它那不朽的传奇
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询