好的,我正在考虑在未来几个月进入c ++开发(没有设定日期)。我模糊地熟悉语言(主要是C),以及OO,MI,模板,异常,模式,使用过的STL的一些基础知识。现在我正处于我想深入掌握语言的时间点。自然的问题是我是否应该 从当前 C ++ 03 或 C ++ 0x 标准开始。
请建议从用户到大师的最佳方式,因为新标准几乎在这里,而且可能会在未来很多年内保留。
由于
答案 0 :(得分:12)
我的建议是从中间开始。从C ++ 03开始,但检查一些编译器已经经常提供的功能和C ++ 0x库。截至目前,C ++ 03是标准(不仅是正式的,但你会发现大多数代码都是严格的C ++ 03)。
现在,如果您打算学习最好:快速开始使用STL基础知识并立即进入Boost库。全程学习模板,阅读元编程。现代C ++ 03的使用将使您正确使用C ++ 0x。
答案 1 :(得分:6)
学习旧版标准C ++ 03。即使被批准为标准,C ++ 0X仍然需要几年时间(至少)。一旦它标准化,在任何符合的实现出现支持其所有功能之前需要一段时间,并且在C ++ 0X实现之前需要更长的更长的时间变得非常受欢迎和经常使用。
答案 2 :(得分:2)
在我看来,学习C ++ 03更实用。如果您不介意学习新功能但可以使用partial几年,那么C ++ 0x会更好。好消息是g ++新版本和vc ++ 2010已经实现了新的c ++ 0x特性的一部分。
答案 3 :(得分:1)
学习新的C ++ 0x功能是深入了解C ++ 03的一个很好的方法,因为您可以看到C ++ 03的工作原理,它的问题以及c ++ 0x建议做什么解决这些问题。
我最近有这方面的经验,了解新的右值引用和移动语义。在C ++ 03中,表达式中有很多不必要的临时创建和复制,了解c ++ 03为什么会出现这个问题,以及C ++ 0x如何解决这个问题,这非常有启发性,并为我当前的C ++开发提供了信息。
答案 4 :(得分:1)
在C ++ 0x编译器常见之前的几年。所以目前,你没有太多选择。学习C ++ 03,然后在时机成熟时分别学习新东西。根本差异并不是那么大。 0x主要是用螺栓固定的新功能,现有功能被推广和简化。对C ++ 03的了解仍然适用。