【问题标题】:Should I learn C++ based on new or old standard (specification)?我应该根据新标准还是旧标准(规范)学习 C++?
【发布时间】:2010-10-26 07:09:34
【问题描述】:

好的,我正在考虑在未来几个月内从事 C++ 开发(没有确定日期)。我对语言(主要是C)隐约熟悉,以及OO、MI、模板、异常、模式、使用STL的一些基础知识。现在我正处于我想深入掌握这门语言的时间点。自然的问题是我是否应该
从当前的 C++03C++0x 标准开始。

鉴于新标准即将问世,并且可能会在未来很多年保持不变,请提出从用户到大师的最佳方式。

谢谢

【问题讨论】:

  • 您希望通过学习 C++ 获得什么?如果你对语言设计感兴趣,C++0X 会更有趣。但是,如果您想做专业开发,则绝对应该坚持 C++03 标准。

标签: c++ c++11


【解决方案1】:

我的建议是从中间开始。从 C++03 开始​​,但检查一些编译器已经经常提供的特性和 C++0x 库。到目前为止,C++03 是标准(不仅是正式的,而且您会发现的大多数代码都是严格的 C++03)。

现在,如果您打算学习最好:从 STL 基础知识快速开始,然后立即进入 Boost 库。全程学习模板,阅读元编程。现代 C++03 的使用将使您走上 C++0x 的轨道。

【讨论】:

    【解决方案2】:

    学习旧的标准 C++03。 C++0X 距离被批准为标准还有几年的时间(至少)。一旦标准化,任何符合其所有特性的实现出现都需要时间,而 C++0X 实现需要更长的时间变得非常流行和经常使用。

    【讨论】:

      【解决方案3】:

      在我看来,学C++03更实用。如果您不介意学习新功能但可以使用 partial 几年,C++0x 更好。好消息是 g++ 新版本和 vc++2010 已经实现了部分新的 c++0x 功能。

      【讨论】:

        【解决方案4】:

        学习新的 C++0x 功能是深入了解 C++03 的好方法,因为您会了解 C++03 的工作原理、它的问题以及 c++0x 建议做什么解决这些问题。

        我最近在学习新的右值引用和移动语义方面有过这种经历。在 C++03 中,表达式中有很多不必要的临时创建和复制,了解 c++03 为何存在此问题以及 C++0x 如何解决此问题对我当前的 C++ 开发很有启发。

        【讨论】:

          【解决方案5】:

          C++0x 编译器普及还需要几年时间。所以目前,你别无选择。学习 C++03,到时候可以单独学习新的东西。根本区别不是很大。 0x 主要是增加新功能以及对现有功能进行通用化和精简。 C++03 的知识仍然适用。

          【讨论】:

            猜你喜欢
            • 2019-07-31
            • 1970-01-01
            • 2017-11-04
            • 1970-01-01
            • 2017-04-05
            • 1970-01-01
            • 1970-01-01
            • 2010-12-14
            • 2013-08-05
            相关资源
            最近更新 更多