从Java / C#到C ++的最佳方法是什么?

在我的大学,我的大部分课程都是用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的有效C ++是一本帮助你学习C ++的好书。 为您提供语言概述,并介绍了在基本上任何C ++程序的开发过程中将使用的许多关键概念。

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

我在所有3个版本中都喜欢这本书,这是我在UT担任高级课程的一本书,但它不是一本入门书。 你可以用很少的东西熟练使用C ++,但在阅读了Meyer的工作之前,你肯定不会使用编译器。

我不知道它是否仍在打印中,但我发现Navigating C ++很有用,但我对Pascal的指针也很满意。 当然,我错过了15年前你必须了解OOP是什么,现在它更加假设了。 所以,也许迈耶并没有脱节。 思考?

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

您不必担心C ++中的已检查exception,但您需要了解const正确性 。

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

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

我还全面推荐Bruce Eckel 在C ++中的思考 。 对于想要进入C ++思维模式的经验丰富的程序员来说,这是一本很棒的书。

他非常友好地免费提供他的书籍的电子版本。

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

我有完全相同的问题。 我能找到的唯一一本书是Dean C. Wills的“Pro Visual C ++ 2005 for C#Developers” 。 这是一个很好的阅读与优秀的例子,我认为这本书来自的角度可能是你正在寻找的。

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