【发布时间】:2009-02-28 19:46:08
【问题描述】:
我今天参观了大学计算机科学系的开放日,在实验室参观中,我们坐下来玩了几个本科生的最后一年项目。其中一个特别好 - 一种 FPS 小行星游戏。我决定查看src 目录,发现它是用 C++ 完成的(大多数其他项目都是 Java 3D 应用程序)。
我之前没有做过任何 C 语言,但我之前看过一些 C 代码。从我在这个游戏的 .cpp 代码中看到的,它看起来并没有太大的不同。
我有兴趣学习 C 或 C++,但以后可能会学习另一个。 先学习一个对我有什么好处和如果有,是哪一个?
【问题讨论】:
-
这不是真正的重复。这个问题也隐含地问“我应该先学习 OOP 还是过程编程”
-
在下降到以下答案之前(IMO 他们绕圈子),请允许我提供一些建议:TRUE:C++ 确实保留所有应用于 C 的特性和属性,因此隐含地“废弃”C(下面的大多数答案都试图说明这一点)。 然而:C not,not,NOT DEAD。人们似乎抓住了'没有必要同时学习'的比喻,但实际上这是没有根据的。借用源自 C 的语法,C++ != C。了解 C++ 不会使您成为合格的 C 开发人员,同样,了解 C 也不会使您成为合格的 C++ 开发人员。
-
如是说:在深入研究 C++ 之前学习 C 是没有害处 - 你知道的越多,你就越好 - 但是在相反,如果您的最终目标是学习 C++,则没有必要学习 C。如果你想学习 C++,去学习 C++,如果你想学习 C,去学习 C。两者都有优点和缺点(C 的简单性和 C++ 的超深度特性以它们自己的方式既是诅咒也是祝福),并且今天仍然在使用(C 用于嵌入式系统、Unity、PHP 等 - C++也适用于 Unity、Unreal 等)。
-
要点: 想学 C++? 那就跳过 C。你不需要它。 想学 C 吗? 那么好,去学 C。如果你想两者都学,那就先学 C。他们在世界上都有自己的位置,所以不要认为其中任何一个对另一个就足够了。