c++编程介绍,现代c++教程
现代编程指南
现代编程指南
Visual Studio 2012
此主题尚未评级-请对此主题评级。
[本文档仅供预览,在未来版本中可能会有所变化。包含的空白主题用作占位符。]
c是世界上使用最广泛的编程语言之一。一个写得很好的C程序快速高效。语言比其他语言更灵活,因为您可以使用它来创建各种类型的应用程序,从有趣和令人兴奋的游戏、高性能的科学符号软件、设备驱动程序、嵌入式程序和Windows客户端应用程序。20多年来,C解决问题(如这些和其他许多使用。你可能不知道的是,越来越多的C程序员拥有dowdy的C风格编程。昨天的扭曲与现代的相反。
C最初的要求之一就是向后兼容C语言。从那以后,C的发展扩展了几个小版本——C类,最初的C语言规范,然后是后来的很多增强。由于C的继承性,C通常被称为多实例编程语言。在C中,您可以执行涉及原始指针、数组、空终止字符串、自定义数据结构和其他函数的纯过程,这可能会带来出色的性能,但也会产生错误和复杂的C风格编程。C风格的编程类似于危险,因为C的创始目标之一是编写、扩展和维护具有类型安全的程序。早期,C采用了面向对象编程等编程范式。多年来,算法和数据结构的标准库的语言已经被高度测试以添加功能。这些附加物有可能实现现代C风格。
现代C强调:
基于堆栈的作用域,而不是堆集或静态全局作用域。
而不是显式类型名的自动类型推断。
而不是原来的指针。
标准:字符串
而不是原来的char[]数组。
标准模板库(STL)容器(如vector、list和map ),而不是原始数组或自定义容器。
STL算法代替手工编码。
异常、错误案例的报告和处理。
一个单独实现的小函数,内联lambda函数而不是。
c语言本身也得到了发展。比较以下代码片段。这演示了如何使用C语言:
c圆* p=新圆(42);
向量形状* v=load _ shapes();
for(向量圆*:迭代器I=v . begin();我!=v . end();i ) {
if( *i **i==*p)
cout **i "是匹配项\ n ";
for(向量圆*:迭代器I=v . begin();
我!=v . end();i ) {
删除* I;//不是异常安全的
删除p;
下面是在现代C语言中如何做同样的事情:
c auto p=make _ shared circle(42);
向量shared _ ptr shape v=load _ shapes();
for_each( begin(v),end(v),[ ]( const shared_ptr shape s ) {
if( s *s==*p)
cout *s 是一个匹配项\ n ;
在现代C中,没有必要使用新的或删除的或显式的异常处理,因为可以使用智能指针来代替。当你使用自动类型派生和lambda函数时,你可以更快地编写代码,更严密地理解它。和for_each更清晰,更容易使用,比循环的无意错误要好。您可以使用具有最少代码行的模板文件来编写应用程序。您可以使代码安全异常的内存安全,并处理未配置/取消分配或错误代码。
现代C结合了两种类型的多态性:编译时,通过模板;运行时,通过继承和虚拟化。你可以混合这两种多态性,结果很好。STL模板shared_ptr使用内部的虚拟方法来完成它表面上很容易的类型擦除。但是,当过度使用的多态性没有虚拟化时,模板是更好的选择。模板可能非常强大。
如果另一种语言(尤其是托管语言)中的大多数类型是引用类型,很少是值类型,则C知道类C是值类型,并且默认情况下。但是,您可以将它们指定为引用类型,以支持面向对象编程的多态行为。从有帮助的角度来说:值类型是关于内存和布局控制的,引用类型的详细信息是关于基类和支持多态性的虚函数的。默认情况下,值类型是这样的——它们有复制构造函数和复制赋值操作符。当您将指定为引用类型时,请使该类不同—禁用复制构造函数和复制赋值运算符—并使用支持多态性的虚析构函数。值类型也是关于复制内容的两个独立的值,这样你可以独立的修改它们。标识引用类型,但是-它是哪种类型的对象-因此有时被称为多态类型。
因为C电源是神的再现。程序员在语言(比如Java和C#)上的效率很重要,但是在功耗和性能极其重要的时候,在显示上有很大的局限性。和高效率的电源,特别是现代C.
它不仅是一种现代语言和开发工具,而且。Visual Studio在开发周期的所有部分都是健壮和高效的。它包括应用生命周期管理(ALM)工具、IDE增强(如IntelliSense)、合适工具的机制(如XAML和构建、调试)以及许多其他工具。
本文档这一部分的文章提供了高级指南和最佳实践的最重要的功能,以及编写现代C程序的技术。
C 11函数(现代C)
c类型系统(现代c程序设计指南)
对象生存期和资源管理(现代C)
对象拥有资源(RAII)
智能指针(现代C编程指南)
编译时打包(现代C) Pimpl
容器(现代C)
算法(现代C语言)
和文本(现代c)
和字符串I/O格式(现代C)
以及错误和异常处理(现代C编程指南)
ABI边界的可移植性(现代C)
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。