Java开发人员学习C ++的最佳方法是什么

时间:2009-04-25 20:21:18

标签: java c++

我认为自己是一位经验丰富的Java开发人员,并计划开始学习C ++。

如果您有相同的经验,即在Java之后学习C ++,我想听听您对这样做的最佳方法的看法。

[更新]“最好的方法”没有得到很好的量化。我正在寻找的是利用我现有的Java知识和编程经验,以便我可以快速提升C ++。

10 个答案:

答案 0 :(得分:18)

我已经向Java人员教过C ++,尽管我向他们学习了另一个方向。

你对C感到满意吗?如果没有,请阅读Kernighan and Ritchie C ++的许多特性解释为希望C ++成为具有C语言基本表达式语法的“更好的C”。

你应该得到Stroustrup

布鲁斯·埃克尔斯认为Thinking in C++很好。

我使用了The C++ FAQ Book,Cline,Lomow和Girou;我经常提到它。 Marshall Cline也有C++ FAQ content on his site

更新

您也可以查看C++ for Java Programmers。我不懂这本书,但它看起来不错。

答案 1 :(得分:9)

我的建议是编写高度基于指针的东西,如链表库,BST库等。代码应该是无STL的,类似于纯C.你应该构建应用程序如果它是你的第一个C / C ++代码,那么使用这样的库(例如排序算法?)并学习如何处理肯定会出现的所有陷阱。

在我看来,了解C ++最重要的基础是理解类和结构的指针和低级内存表示。这就像一个启蒙之后,一切都很简单明了;)

答案 2 :(得分:5)

我将从Scott Meyers的Effective C ++和More Effective C ++开始。这两本书重温了C ++的一些非常好的最佳实践。

http://www.aristeia.com/books.html

答案 3 :(得分:2)

其他人已经指定了所需的书籍。我想补充几点需要注意:(背景是java)

  • C ++不会为您提供垃圾 集合(如在Java中)。因此,你 关于内存泄漏必须非常关注。始终使用delete在堆上分配的内存new。 在写作时尽量记住FAQ中的Free-Store management C ++应用程序。
  • 大多数情况下,您可能需要使用C ++ 使用指针(缺少 使用Java)。学习指针(书籍 由@Charlie Martin提出) 有效地使用它们。
  • 您熟悉C ++,学习 STL的基础知识和使用 有效。 (预订JosuttisScott Meyers
祝你好运。

答案 4 :(得分:2)

我强烈不同意首先学习C,并尝试从有效的书籍中学习C ++,虽然它们很优秀。相反,得到Andrew Koenig和Barabra Moo的Accelerated C++副本 - 这是由两个最初的C ++开发小组编写的,将教你如何使用现代C ++特性。

答案 5 :(得分:1)

安迪和查理已经把书给了你,所以我会指出boost图书馆和Qt框架。

Boost为您提供了一些基本功能,因此您无需从头开始创建所有内容。

正如您所知,Qt是一个GUI框架,我发现它非常有趣。有一本名为“C ++ GUI Programming with Qt 4”的书,涵盖了学习Qt的所有重要主题。

答案 6 :(得分:1)

这听起来有点滑稽,但你要求最佳方式,而不是最快。在你学习C ++之前,我建议你从首先学习C 开始。 Kernighan and Ritchie是有史以来最好的语言书籍之一。当你了解C和Java时,你将能够在一个合理的C ++子集中编写好的,清晰的程序,几乎不需要额外的努力。

答案 7 :(得分:1)

K&RStroustrup是经典的,最终你应该得到它们,但我不认为它们是C ++初学者的好介绍。在现代C ++中思考的是在类,模板,异常和流中思考,其中没有一种可用C语言。

我会推荐一本关于C ++的大学级教科书,如Deitel and Deitelalt text

在玩完之后,你应该专注于学习编写一个类似于内置类的类。这意味着提供一个复制构造函数operator=operator==operator<<等。在此过程中,您将遇到嵌入在C ++语言中的各种概念。我会同意Effective C++上的其他人一旦你对基础知识感到满意就必须阅读。

答案 8 :(得分:1)

Mark Allen Weiss撰写的“C ++ for Java Programmers”是一本适合经验丰富的Java程序员的好书。

答案 9 :(得分:1)

了解Qt。相信我;我既是Java和C ++开发人员;我可以告诉你Qt使C ++语言更接近Java。不要只学习裸骨的C ++。

使用Qt的C ++可以让你的工作效率更高。我曾经将很多不同的库(Boost,Intel,数据库连接器等)组合在一起,只是为了实现我们所做的那些事情(高性能/实时计算)。最后,我发现我所需要的80%以上已经包含在Qt中。

更不用说,imo,Qt拥有我所参与的任何框架/库的最佳文档,这使得非常很容易只是自己学习。

试一试,亲眼看看。

免责声明:我只是一名开发人员 - 我不为诺基亚工作。 = P

相关问题