我是一名Java程序员,有一点C知识,想要开始使用C++,有人能推荐一个好的教程吗?
此外,在以下方面也有任何帮助:
发布于 2010-08-17 16:06:49
根据您的目标平台,我使用Visual作为IDE。
相对于C++,C++的一般规则是,它包含了比Java更多的自由,特别是在模板与泛型、堆栈与堆、以及面向对象及其原则的强制(或缺乏)方面。例如,C++提供了破坏封装的朋友语句,const_cast,在堆栈上分配对象,指针可以指向它们,模板比泛型更强大,等等。
您必须适应的另一件主要事情是资源管理。C++不提供GC。您需要熟悉RAII (资源获取是初始化)以及基于范围的构建和销毁如何工作,以避免资源泄漏。
您还需要浏览标准模板库(STL)。与Java库相比,STL有一种更直接的方法--例如,std::iostream类提供了从文件中提取浮点数、字符串等的本地方法,而在Java中,您需要一个file和一个扫描器,尽管它的范围要有限得多--没有GUI或基于目录的组件,仅供初学者使用。
哦,顺便说一句,说真的,丢掉你的C知识。它会伤害你而不是帮助你。
发布于 2010-08-17 16:37:27
好教程?
没有教程推荐,因为教程很可能不会触及更复杂的语言特性。买本书。
需要学习的项目
Qt4一旦您熟悉了语言,任何使用STL/Template/ Qt的项目。Boost源代码可能值得学习。
推荐阅读
关于C++的书。阅读量大,但作为参考,一本关于设计模式的书也可能有帮助。
什么IDE?我目前使用NetBeans
windows上的,Linux上的jEdit/Kate/mcedit/vim/emacs。
一般C++建议
了解如何使用外部构建系统(cmake/scon/gnu make),如何在没有IDE的情况下工作,如何从命令行工作,并尽量避免非标准的编译器特定特性。
发布于 2010-08-17 15:43:51
在硅提供的阅读链接是一个很好的观察。
我最大、也是最普遍的建议是熟悉助推库,熟悉RAII (资源分配是初始化)并遵守它!
我不是NetBeans的用户,但是如果您喜欢它,而且它是C++插件,那么这可能就是我建议您首先使用的。如果没有必要的话,在新语言的基础上再创造一个你想要学习的环境是没有意义的。话虽如此,我是一个Eclipse,C++ (CDT)插件非常不错。
https://stackoverflow.com/questions/3504238
复制相似问题