在我的大学里,我的大部分课程都是用 Java 进行的。我最近还在暑期实习中学习了 C#(和 Visual Studio 环境)。现在我正在上计算机图形学入门课程,教授该课程的研究生更喜欢我们使用 C++ 通过 GLUT 访问 OpenGL 绑定。

有谁有关于如何从 Java/C# 良好过渡到 C++ 的好资源吗?显然,指针将是一个大问题,但是我还应该注意其他什么事情吗?任何教程、指南等。会很有帮助的!

谢谢!

有帮助吗?

解决方案

是的,我也被同样的虫子咬了。大学倾向于使用 Java,然后允许你在项目中选择你想要使用的语言。

最好的方法就是跳进去。从小事做起,一步步迈出第一步,当你到达那里时,只需谷歌搜索那些让你困惑的东西。还可以查找已发布源代码的项目。看看他们如何构建他们的程序。基本上,只是修补概念。网络上有大量信息。

让它变得有趣并抓住 C++游戏开发书籍 所以它不会很快变得麻木。

这是我在学习过程中发现有用的一些地方

http://www.cprogramming.com/

http://www.wikipedia.com

http://www.cplusplus.com/

其他提示

如果您已经了解 Java/C#,我建议您直接学习 C 而不是 C++。根据该网站,GLUT 对 C 的绑定与 C++ 相同,因此您应该已准备就绪。不管怎样,学习 C 的最好方法是购买并阅读一本《C 编程语言》,然后坐下来使用 C 编译器来运行你的东西。

Scott Meyers 的《Effective C++》是一本帮助您学习 C++ 的好书。为您提供该语言的概述,并介绍您将在基本上任何 C++ 程序的开发过程中使用的许多关键概念。

Scott Meyers 的《Effective C++》是一本帮助您学习 C++ 的好书。为您提供该语言的概述,并介绍您将在基本上任何 C++ 程序的开发过程中使用的许多关键概念。

我喜欢这本书的所有 3 个版本,它是我在 UT 大四时所上的课中的一本书,但它不是一本入门书。尽管在阅读 Meyer 的著作之前,您肯定不会成为编译器的一员,但您可以用更少的东西来熟悉 C++。

我不知道它是否还在印刷,但我发现 浏览 C++ 很有用,但我对 Pascal 的指点也非常满意。呃,我当然忘记了,15 年前你必须学习 OOP 是什么,现在它更多的是假设性的。所以也许迈耶的做法并没有什么出格。想法?

维基百科有一篇文章关于 Java 和 C++ 之间的比较.

您不必担心 C++ 中的检查异常,但您确实需要了解 常量正确性.

有两个主要区别:语法和内存管理。

在 C++ 中,您拥有指针,它们的功能更强大(或更弱,具体取决于您对功能的解释)对象引用,您已经从 Java 中了解到了这一点。

在 Java 中你可以这样做:

Thing mything = new Thing(); // mything is an object reference
mything.method();

在 C++ 中你可以这样做:

Thing * mything = new Thing(); // mything is an object pointer
mything->method();
delete mything;

语法差异很明显:' - >'而不是'。'。从指针调用对象的对象方法时。在 C++ 中,当您使用完对象后,必须显式释放内存。归根结底,您在 C++ 和 Java 中做同样的事情,实例化对象和调用方法,在每行末尾添加无用的分号,等等。Python 变得如此流行有什么奇怪的吗?:

mything = Thing() # mything is whatever I want it to be
mything.method()

浏览任何一半像样的 C++ 文本将帮助您填写其余的详细信息。

我也强烈推荐布鲁斯·埃克尔的 用 C++ 思考. 。对于已经有经验、想要进入 C++ 思维模式的程序员来说,这是一本很棒的书。

他很友善地制作了他的书的电子版 免费提供.

我强烈建议任何学习C ++的人都读出“ C ++编程语言”。迈耶斯(Meyers)和埃克尔(Eckel)有很棒的东西,但是没有什么比那个决定语言应该是什么以及他打算如何使用它的人的学习。

我有完全相同的问题。我能找到的唯一一本书是 “面向 C# 开发人员的 Pro Visual C++ 2005”作者:Dean C.遗嘱. 。这是一本很好的读物,有很好的例子,我认为这本书的角度可能正是你正在寻找的。

您将需要一种完全不同的内存处理感觉。还要考虑释放您不再需要的所有内容。在 Java 和 C# 中,你只需释放对象,内存就会为你清理干净 - 在 CPP 中你不能这样做

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top