从 Java/C# 到 C++ 的最佳方式是啥? [关闭]

Posted

技术标签:

【中文标题】从 Java/C# 到 C++ 的最佳方式是啥? [关闭]【英文标题】:What is the best way to go from Java/C# to C++? [closed]从 Java/C# 到 C++ 的最佳方式是什么? [关闭] 【发布时间】:2010-09-06 08:51:18 【问题描述】:

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

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

谢谢!

【问题讨论】:

【参考方案1】:

是的,我也被同样的虫子咬了。该大学倾向于依赖 Java,然后允许您选择在项目期间使用的语言。

最好的方法是直接加入。从小处着手,迈出小步,然后在 Google 上搜索那些让您感到困惑的事物。还可以查找已发布其源代码的项目。看看他们如何构建他们的程序。基本上,只是修补概念。网络上有很多信息。

让它变得有趣并抓住C++ game development book,这样它就不会太快变得麻木。

这里有一些我在学习时发现有用的地方

http://www.cprogramming.com/

http://www.wikipedia.com

http://www.cplusplus.com/

【讨论】:

【参考方案2】:

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

【讨论】:

【参考方案3】:

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

【讨论】:

【参考方案4】:

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

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

我不知道它是否仍在印刷中,但我发现 Navigating C++ 很有用,但我对 Pascal 的指针也很满意。错误当然我忘记了 15 年前你必须了解 OOP 是什么,现在它有点假设了。因此,也许迈耶的做法并不过分。想法?

【讨论】:

【参考方案5】:

***有一篇关于comparisons between Java and C++的文章。

您不必担心 C++ 中的已检查异常,但您确实需要了解 const correctness。

【讨论】:

【参考方案6】:

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

在 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++ 文本将帮助您填写其余的细节。

【讨论】:

【参考方案7】:

我也彻底推荐 Bruce Eckel 的Thinking in C++。对于想要进入 C++ 思维方式的已经有经验的程序员来说,这是一本很棒的书。

他很乐意为他的书制作电子版available for free。

【讨论】:

【参考方案8】:

我强烈建议任何学习 C++ 的人阅读 Stroustrups “The C++ Programming Language”。 Meyers 和 Eckel 有很棒的东西,但没有什么比向那个决定语言应该是什么以及他打算如何使用它的人学习更好的了。

【讨论】:

【参考方案9】:

我遇到了完全相同的问题。我能找到的唯一一本书是"Pro Visual C++ 2005 for C# Developers" by Dean C. Wills。这是一本很好的读物,有很好的例子,我认为这本书的角度可能是你正在寻找的。​​p>

【讨论】:

【参考方案10】:

您将需要一种完全不同的感觉来处理内存。还要考虑释放你不再需要的一切。在 Java 和 C# 中,您只需放开您的对象,内存就会为您整理好——您不能在 CPP 中这样做

【讨论】:

以上是关于从 Java/C# 到 C++ 的最佳方式是啥? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

同一台机器上的两个程序相互通信的最佳方式是啥

在 C++ 中使用 PayPal 自适应支付 API 的最佳方式是啥?

在 Mac 上编写 c++ 的最佳环境是啥? [关闭]

将在 tensorflow 中训练的神经网络部署到 Torch C++ 的最佳方法是啥?

从 Java EE 登录到 SQL Server 的最佳方式是啥

将日志从 ELK 发送到 Splunk 的最佳方式是啥?