代码之家  ›  专栏  ›  技术社区  ›  Community wiki

C++为C添加了什么?[已关闭]

  •  0
  • Community wiki  · 技术社区  · 1 年前

    C++为C添加了什么?

    5 回复  |  直到 14 年前
        1
  •  2
  •   Amardeep AC9MF    14 年前

    就像所有复杂而强大的东西一样,在C++中取得成功是要付出代价的。

    • 你必须非常小心地管理内存。
    • 多范式能力意味着你必须真正擅长设计,以避免制造混乱。
    • 极端性能需要仔细规划和选择所使用的功能。
    • 要想规避大多数每种语言政策,都需要严格的自律。

    所以,如果你记忆力不好,设计能力差,不需要快速程序,或者没有自律性,那么请不要学习C++。总有Java或C#。

        2
  •  2
  •   Matt    14 年前

    元编程?模板?

    就像使用C一样,您可以获得性能,但代码看起来很糟糕。 使用高级语言可以获得不错的代码,但生成尽可能快的代码的灵活性较低。

    有了c++,你能同时做到这两件事吗?你可以像在C中一样快速地自由地制作任何东西,但本机面向对象和模板/运算符重载ect使它成为可能,所以你也可以编写看起来相当漂亮的代码。的确,你可以把它做得既整洁又快速。

    我从未真正发现用c++写东西比用更高级别的语言更痛苦。诀窍在于拥有好的库。

        3
  •  1
  •   Ben Voigt    14 年前

    因为尽管像奇点这样的学术努力,但没有一个主流操作系统可以用高级语言编写驱动程序。

    注意,任何可以在C++中完成的事情也可以在C中完成,但有些事情在C++中要容易得多。

        4
  •  1
  •   Jon Reid    14 年前

    不我想说,如果你的表现不是你的问题,那就不值得了。(按照双底片。)

        5
  •  0
  •   Joey Adams    14 年前

    我的2美分:

    • 虽然我不使用Python编程,但我不得不说,Python可能是完成实际工作的最佳编程语言。这是一种优雅的语言,它拥有大量用于做各种事情的图书馆。然而,作为一名用户,我的经验一次又一次地告诉我Python是缓慢的(take yum 例如)。
    • 我确实很了解哈斯克尔,我不得不说这是一种非常棒的语言。更好的是,它是经过编译的,而且它的速度与Java和C++相比是有竞争力的(尽管在某些情况下你必须付出额外的努力才能达到这个速度)。然而,数据库访问之类的库并不总是与Haskell的基本库的优雅相匹配(我可能错了),而且它们更难安装在Ubuntu上。在我看来,这就是为什么在Haskell中完成真正的工作比在Python中更具挑战性的原因。
    • Ruby非常适合web应用程序。除此之外,它很慢(尽管我推测jRuby或其他东西可能更快)。

    C++远非优雅,在许多情况下,优雅是令人不悦的。有人告诉过你使用 static_cast 而不是C型铸造?有人告诉过你不要 use namespace std; ?C++有很多特性,但往往没有很多重要的语言特性(例如闭包,它被正式证明是自切片面包以来最好的东西)。

    那么,为什么人们使用C++呢?好吧,它注重性能,当你需要速度时,它是一个很好的选择。它有类、名称空间和模板,所以当您想要更好的代码组织,但出于某种原因仍需要使用“C”时,它是一个不错的选择。此外,它还有Boost库,我听说它非常适合完成工作。