好的,我正在考虑在未来几个月内进入 c++ 开发(没有确定日期)。我对语言(主要是C)隐约熟悉,以及OO、MI、模板、异常、模式、使用过的STL的一些基础知识。现在我正处于我想深入掌握这门语言的时间点。自然的问题是我应该
从当前的C++03还是C++0x标准开始。
请建议从用户到大师的最佳方式,因为新标准几乎就在这里,并且可能会在未来很多年保持不变。
谢谢
我的建议是从中间开始。从 C++03 开始,但检查一些编译器已经经常提供的特性和 C++0x 库。到目前为止,C++03 是标准(不仅是正式的,而且您会发现的大多数代码都是严格的 C++03)。
现在,如果您打算学习最好:从 STL 基础快速开始,并立即跳入 Boost 库。全程学习模板,阅读元编程。现代 C++03 的使用将使您走上 C++0x 的轨道。
学习旧的标准 C++03。C++0X 距离被批准为标准还有几年的时间(至少)。一旦标准化,任何符合其所有特性的实现都需要一段时间才能出现,而C++0X 实现变得非常流行和经常使用还需要更长的时间。
在我看来,学C++03更实用。如果您不介意学习新功能但可以使用 partial 几年,C++0x 更好。好消息是 g++ 新版本和 vc++2010 已经实现了部分新的 c++0x 功能。
学习新的 C++0x 特性是深入了解 C++03 的好方法,因为您会了解 C++03 的工作原理、它的问题以及 c++0x 建议如何解决这些问题.
我最近在学习新的右值引用和移动语义时有过这种经验。在 C++03 中有很多不必要的临时创建和复制表达式,了解为什么 c++03 有这个问题以及 C++0x 如何解决这个问题非常有启发性,并为我当前的 C++ 开发提供了信息。
C++0x 编译器普及还需要几年时间。所以目前,你别无选择。学习 C++03,到时候可以单独学习新的东西。根本区别并没有那么大。0x 主要是增加新功能,以及对现有功能进行通用化和精简。C++03 的知识仍然适用。