理解编译错误-合众艾特

      编译器的要求非常苛刻,但优秀的编译器会相当明确地指出错误在什么地方。如果您在编译程序清单的应用程序时遇到问题,错误消息将与下面的内容极其相似。


  这条错误消息来自VisualC++编译器,对错误进行了详细描述。它指出了包含错误的文件的名称,在哪一行遗漏了分号(这里是第6行),还使用错误编号(这里是C2143)对错误本身进行了描述。在这个例子中,虽然遗漏分号的是第5行,但错误消息却指出错误发生在第6行,这是因为对编译器来说,只有等它返回语句后,才能确定在返回前,前一条语句必须结束。如果您可在第6行开头添加分号,程序将通过编译!


  注意:不同于VBScript等语言,在C++中语句分行并不能自动结束语句。


  在C++中,一条语句可跨越多行。


  C++11新增的功能


  如果您是经验丰富的C++程序员,可能发现程序清单1.1所示的基本程序没有任何变化。虽然C++11可以与以前的C++版本兼容,但仍然做了大量工作让这种语言使用起来更容易。


  auto让您能够定义这样的变量,即编译器将自动推断其类型,这简化了变量声明,同时又不影响类型安全。Lambda函数是没有名称的函数,让您能够编写紧凑的函数对象,而无需提供冗长的类定义,从而极大地减少了代码。C++11让程序员能够编写可移植的多线程C++应用程序,同时确保它们遵守标准。这些应用程序支持并行执行范式,在用户升级到多核CPU以改善硬件配置时,其性能将相应地提升。


  本书将讨论C++11所做的众多改进,这里列举的只是其中几项。
阅读更多
文章标签: it
个人分类: IT
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭