C ++新手,帮助我入门

时间:2010-08-17 15:39:35

标签: c++ ide

我是一名Java程序员,有一点C知识,想要开始使用C ++,有人可以推荐一个好的教程吗?

也有任何帮助:

  • 要学习的项目
  • 推荐阅读
  • 什么IDE?我目前使用NetBeans
  • 一般C ++建议

8 个答案:

答案 0 :(得分:6)

取决于您的目标平台,我使用Visual Studio作为IDE。

与Java相反,C ++的一般规则是它包含比Java更多的自由,特别是关于模板与泛型,堆栈与堆,以及对象的实施(或缺乏)方向和它的原则。例如,C ++提供了封装破坏的友元语句,const_cast,在堆栈上分配对象,指针可以指向它们,模板具有比泛型更强大的功能等。

您必须习惯的另一个主要问题是资源管理。 C ++不提供GC。您需要熟悉RAII(资源获取是初始化)以及基于范围的构建和销毁如何工作以避免资源泄漏。

您还需要了解标准模板库(STL)。 STL具有比Java库更直接的方法 - 例如,std :: iostream类提供从文件中提取浮点数,字符串等的本机方法,而在Java中,您需要文件和扫描程序,尽管它是范围更加有限 - 没有基于GUI或基于目录的组件,仅适用于初学者。

哦,顺便说一句,严肃地说,放弃你的C知识。它会伤害而不是帮助你。

答案 1 :(得分:4)

  

好教程?

没有教程建议,因为教程很可能不会触及更复杂的语言功能。拿一本书。

  

要学习的项目

Qt 4一旦熟悉语言,任何使用STL / Templates / Qt的项目。提升源代码可能值得学习。

  

推荐阅读

任何Bjarne Stroustrup关于C ++的书。重读,但作为参考,一本关于设计模式的书也可能有用。

  什么是IDE?我目前使用NetBeans

Windows上的Visual Studio Express,Linux上的jEdit / Kate / mcedit / vim / emacs。

  

一般C ++建议

了解如何使用外部构建系统(cmake / scons / gnu make),如何在没有IDE的情况下工作,如何在命令行中工作,并尝试避免非标准的编译器特定功能。

答案 2 :(得分:1)

In silico提供的阅读链接是一个很好的阅读链接。

我最大和最一般的建议是熟悉Boost图书馆并熟悉RAII(Resource Allocation is Initialization)并以此为生!

我不是NetBeans的用户,但是如果你喜欢它并且它是一个C ++插件,那么我建议你开始使用它。如果你不必要的话,在创建另一个你正在尝试学习新语言的环境时没有任何意义。话虽如此,我是一个Eclipse用户,并且它的C ++(CDT)插件非常好。

答案 3 :(得分:1)

获取像Deitel and Deitel这样的大学教科书风格的C ++书籍。设计可重用的库时,困难的部分是学习语言的所有细节,但如果你只是拼凑现有的部分,那么如果你已经了解Java,那就不应该太糟糕了。声明为普通变量的对象,它的指针,以及您需要学习的引用以及资源管理之间存在细微差别。一旦掌握了语言,就可以使用像Stroustrup和Meyers这样的经典作品填补空白。

根据IDE的说法,您应尽可能多地尝试Visual Studio,X Code,Anjuta和Eclipse,并查看您最喜欢的内容。您可能还应该学习使用Make(或SCons)和vi。

在没有IDE的情况下构建的方法

对于项目,你应该首先坚持使用CUI,因为与Java不同,没有标准的GUI实现,但最终你想要实现类似俄罗斯方块或矩阵数学库的东西,它很适合OO。 wxWidgets和Qt是跨平台的,如果你想让它跨平台,但你应该针对你感兴趣的平台。

答案 4 :(得分:1)

。这本书也不在链接中,我用它:

使用Robert Lafore在C ++中进行面向对象编程,它假设为零背景,而且非常简单。

。对于IDE Visual Studio常用于像我这样的初学者:)。

。作为一个很好的例子,您可以尝试为“复数”创建一个具有自己的添加,删除,乘法和除法成员函数的类。您将学习在该类中封装数据和函数以及操作符重载

前:

int i1 = 5 ; 
int i2 = 6 ; 
int i3 ;
i3 = i1 + i2 ; //correct

complex c1.setreal(3) ;  //here you learn about member functions of the class
complex c1.setimg(5) ; 
complex c2.setreal(6) ; 
complex c2.setimg(8) ;  
complex c3 ;
c3 = c1 + c2 ;//wrong until you overload the operator + 

答案 5 :(得分:0)

IDE的一些建议:

  • NetBeans (full version) - 使用gcc(不包括在内)。在Windows上,gcc可与CygwinMingW一起使用。可用于构建基于Qt的应用程序(参见下面的Qt)。适用于Windows,Linux和Solaris(可能还有其他)。
  • Qt Creator - 包括允许GUI应用程序可移植到多个平台的Qt框架。可以与gcc或MSVC一起使用(仅限Windows)。适用于32位Windows(可以针对64位Windows进行编译,但有一些困难),32位或64位Linux和Mac OS X.
  • MS Visual C++ 2010 Express - 免费下载,可用于构建32位或64位Windows应用程序。可用于构建标准C ++应用程序。它还允许构建托管C ++,但是如果你打算这样做,你可能最好不要使用C#。可以使用Qt框架构建跨平台GUI。
  • Eclipse CDT - 我没有使用过这个,但我听说过它很好,并且至少不会提及它。我知道它将构建32位Windows应用程序(不确定64位)和Linux版本(32和64 bt)。

答案 6 :(得分:0)

  

推荐阅读

Scott Meyers的

有效的C ++

答案 7 :(得分:0)

第6版C++ Primer Plus将于2011年9月发布。