能直接学习C++吗?

作者&投稿:荆咐 (若有异议请与网页底部的电邮联系)
没有学过c语言可以直接学c++吗?~

当然可以。
首先得先弄明白c++和c之间的区别c是面向过程的,c++是面向对象的。c++是把c中一些不足的地方有所改进,增添了类。

C和C++是两个不同的集合,只是这两个集合重合的部分很大,如果你想学C++,那应该从C和C++重合的那一部分学起,而不用学习C的全部。
我还是建议你直接学C++。

回答:完全可以

但是选书很重要

这是一个最让人挠头的问题,选什么书总是见仁见智,什么书最好是一个永远找不到标准答案的难题,来我们这个论坛的朋友多半是冲着书来的。我不想评论哪本书好哪本不好,我只是大致列一个书单,简单讲两句。

我的书单并不定位于一个没有任何语言编程基础的初学者,我觉得这样的初学者不适合直接学习 C++ 语言。我的书单定位于那些有其它语言的一定的编程基础的 C++ 初学者,他至少应该知道什么是变量,什么是运算符,什么是表达式,关键字,语句,程序,至少应该知道赋值语句是干什么的,分支判断语句干什么,循环语句干什么,当然他不必知道 C/C++ 的词法和语法,也就是说他有以上的概念,但不知道这些东西在 C/C++ 中是如何实现的。在这个基础上,我把书单分为入门类、进阶类、应用技巧类。

入门类:

C++ Primer, 3rd Edition

Thinking in C++, 2nd Edition

C++ 大学教程(这本书我没看过,但不少初学者说不错,留此存目)

The C++ Standard Library: A Tutorial and Reference

进阶类:

The C++ Programming Language, Special Edition

The Design and Evolution of C++

Inside C++ Object Model

C++ Templates: The Complete Guide

STL 源码剖析

Generic Programming and the STL

Modern C++ Design: Generic Programming and Design Patterns Applied

应用技巧类:

Effective C++, 2nd Editon

More Effective C++

Exceptional C++

More Exceptional C++

Effective STL

Ruminations on C++

对这个书单我有几点说明:

1、除我注明的那本以外,其它书我基本看过,或浏览过,了解其大致内容。也因此这些书就局限在我的眼光之内,既然不愿给大家推荐我没看过的书,也就难免有遗珠之憾。

2、很多人认为 The C++ Programming Language 是入门书,我认为不妥,这本书号称"专家自学指南",并非浪得虚名,读者水平越高越能从这本书里学到更多的东西。如果身边没有一个很好的老师随时指导的话,我不建议初学者选用这本书,一上来就看这本书容易产生挫折感,影响学习的信心。这本书也可以作为语言参考手册常备身边,随用随查。

3、入门类前三本选一本即可,第一本我详细读过,第二本我大致浏览过,第三本没看过。第四本我极力推荐,每个初学者都应该好好看看,很多人认为应该归入进阶类,我放在入门类自有我的道理。有网友反应 Thinking in C++ 对于初学者太难,我感觉如果符合了我上面对初学者的初步要求的话,读这本书应该没什么问题。

4、我不建议用国内的书入门,我见过大部分国内书的内容只是讲了一个更好的 C,不是 C++。我认为初学者应选择一本对语言介绍比较全面、详细的书,以便对 C++ 有一个全面而系统的认识,一知半解是学习的大忌。如果一本自称全面的 C++ 书中缺少 String, Containers, Generic Algorithms, Namespaces, Templates, Exception Handling, RTTI 中的一个,你有理由不看它,如果一本自称全面的 C++ 书没有讲到标准库或 STL,你有理由不看它,如果一本自称全面的 C++ 书中的头文件还带有 ".h" 后缀,你有理由不看它。

5、应用技巧类并非最后再看,我单独把这些书列出,是因为这些书要和前两类书一起看,没有先后顺序。

6、选书的原则以及与每一阶段学习的关系,到下一部分我还要继续展开。

7、上述大部分书都有中文版,翻译质量大部分还不错,建议英文较好的最好直接读英文版,英文不好的也可看中文版。

下面我谈谈对纸版书和电子版书的看法。初学时最好去买一本纸版书,这样无论你躺着,坐着还是站着,也无论你身在何处——教室、图书馆、实验室、湖边长廊,你都可以很方便地拿出来看。很多同学的实验室和寝室中都配有电脑,似乎看电子版很方便,但是当寝室中老大在大呼小叫地打 CS,老二抱着电话和准老婆谈情说爱,老三抱着枕头说着梦话,老四抱着吉他唱着调跑到北冰洋去的自创情歌时,无论你是老几,我不相信你能对着电脑屏幕,心平气和地看着 C++ Primer 电子版,寝室根本不是学习的地方,最好还是拿上一本纸版书,到自习室、图书馆去吧。

课间短剧

讲到此处,digerati 同学举手发言:"老师,我有笔记本电脑啦,我可以带到自习室去,还是看电子版。"

涅盘老师当场被噎出四个跟头,晕了过去。五分钟后悠悠醒转,感觉口干舌燥。"水......水......"

涅盘老师喝了两口水,清清嗓子,继续讲课:

刚才,digerati 同学说得......说得......很好......是吧......哈哈......这个......那个......是呀......啊......

你可以把笔记本电脑带到自习室去,但你在马路边等 MM 或者 GG 的时候,或者坐公共汽车的时候,笔记本电脑总是不如纸书方便嘛?是吧?

zhazha 同学举手发言:"老师,我有掌上电脑啦,比你那本两块砖头重的书方便多了,我可以在等 MM 的时候看电子版。"

涅盘老师当场被噎了八个跟头,一天都没有醒。

转天,涅盘老师才醒过来,有气无力地抬起胳膊,伸出手:"眼镜......给我眼镜......"

zhazha:"老师,您戴着呢。"

涅盘老师:"那我怎么什么都看不见啊?"

zhazha:"您还没睁眼呢!"

涅盘老师艰难地睁开眼睛:"怎么还看不见呢?"

zhazha:"老师,您睡了一整天了,揉揉眼睛。"

涅盘老师用力揉揉眼:"还是不清楚。"

zhazha:"您再揉揉......"

涅盘老师:"还是不行......"

zhazha:"您再揉揉......"

涅盘老师:"还是不行......"

如此反复50次。

涅盘老师双眼红肿,极为愤怒,不耐烦地嚷着:"不能再揉了!!!我为什么还是看不清???"

digerati:"老师,很抱歉,我们忘了告诉您,昨天您眼镜的两个镜片都摔碎了,现在您只戴着眼镜框......"

涅盘老师:"@#&*@$%$#&"又晕了过去......

......

几天以后,继续上课,涅盘老师原来只有两名同学,现在他面对空空的教室......

同学们,啊......上次课,啊......digerati 同学 和 zhazha 同学,啊......上课捣乱,啊......被停课请家长,啊......家长至今未到,啊......他们现在还在办公室罚站,啊......如果其他同学,啊......再上课捣乱,啊......就和他们一样的下场,啊......

就在涅盘老师对着空教室慷慨激昂的时候,digerati 和 zhazha 正舒舒服服地坐在办公室的沙发上,翘着二郎腿,喝着涅盘老师的龙井茶......哈哈!

如果你的最终目的是为了学习JAVA的话,我认为还是直接学习JAVA的好,因为C++比JAVA要复杂,JAVA可以说是C++的简化,去掉了多继承、加上了GC、多线程支持等东西。
而且JAVA基本上你按照SUN的来就可以了,标准化做得比较好,而C++虽然有一个标准,但是各个公司有自己的一套,你在linux下面和在windows下面用C++都不同。而对于初学者,单单是搞IDE环境,认清C++标准库、名字空间、VC、BCB、GCC等就要花费一大半精力了,所以你如果要学习JAVA,想通过学习C++来入门的话,就不必了。反之,倒是可以试试。
每种语言都有自己的特性,而C++被称为最难学的语言也不是没有道理的,它是C的后继,支持1.过程设计思想;2.抽象数据类型思想3.面向对象思想4.泛型思想,而其他语言都只是支持一两种。
JAVA其实是比C++要容易入门的,而C++倒是很可能让入门者失去信心,因为它太庞大了。单单是买它的经典书,大概就上千块还不止。这还是语法上面的。

不是吧?JAVA的难度可比C++浅多了。根本没有先学C++给JAVA打基础的道理。
另,C与C++完全是风马牛不相及的两种语言,惟一相同的时他们的语法和语句(可以说C++是C的加强),但是在编程方法上,C是结构化,C++是面向对向,完完全全两种不同的编程方法,先学C反而容易搞混自己的思维,不适应C++的方法,不如直接学C++来得快。所有的C转向C++的程序员,都要花好大的时间来搞清C++与C为什么不同(编程方法)。所以,不学C直接学C++是很正确的。但如果你懂一些编程,如VB、delphi等,那学C++会更容易一些。
用几个月给C++打基础也算够了,学东西切忌贪多贪全,先笼统地把C++的书在短时间内看完,边看边实践,始终保持新鲜感和乐趣。碰到不太懂的地方再重新深入。一边写一边学,这个方法最好。

另外,如果你想学JAVA的话就直接去学,别碰C++,那东西魅力太大,碰了之后会离不开的:)

可以直接学c++。
c是面向过程的编程语言,c++是面向对象的编程语言,两者本质不一样,但是c++中有部分c的遗留代码,同时c++向下兼容c。所有语言的编程思想和编程中的流程控制(顺序,if条件,switch选择,while循环)都是一样的。
相对来说,谭浩强,谭老师的c 语言那本书讲得比较通俗,可以用来初步了解编程思想。但是也可以选择一本通俗一点的c++书籍直接学习c++。
总的来说,先学习c有利于学好c++,可能初期用的时间比较多,但到后来学习c++时会轻松一点。直接学习c++可能难一点,总体上用的时间可能比前者慢一点!!

直接学就是了,找本好点的书,推荐C++ Primer Plus
一个月就差不多了,然后多写点程序,培养手感。

其实直接学习JAVA也可以,就是OOP可能不好理解。所以开始用C++是不错的。先学VB或C,基于过程的编程会让你对OOP的理解有偏差,只是能培养一些编程思想。而几个月对培养编程思想作用很小,所以不推荐。


能不能不学C语言,直接学C++可以吗?
可以直接学,其实,c++ 发明人也说过,c++ 与c 是两门不同的语言。不必要纠结于先学习c后学习c++。但实际情况是,你学习c++的过程中,就无意识的把c给学了(无论你愿意与否)。它们有许多知识都是重复的。C里面无非就是一个指针和数据结构,而这玩意在c++里面照样存在。

对c语言编程啥都什么都不懂,直接学习c++可以吗
可以,c++和c语言也有很多相似的地方,c++难些,建议先学c语言,有个循序渐进的过程

学c++之前要学c语言吗
学c++之前要学c语言。学了C语言就相当于学了C++的一半,从C语言转向C++时,不需要再从头开始,接着C语言往下学就可以,所以强烈建议先学C语言再学C++。从语法上看,C语言是C++的一部分,C语言代码几乎不用修改就能够以C++的方式编译。但是初学者直接学习C++会非常吃力,Hold不住,尤其是对计算机内存...

初学者如何学C语言?
相对于其他编程语言,C语言还是比较难的。初学者需要注意一下几点:一是学习顺序 先从熟悉简单的C语言语法开始入门,然后再循序渐进,学习C++语法,WIN32、MFC、QT、网络编程,数据库、数据结构、算法、COM、STL等。构建一个完整的C语言知识体系。这需要一个比较漫长的学习积累的过程。语法入门部分大概2-...

不学c语言可以直接学c++吗
学得人多嘛,相关资料自然也多了.3.C#基于C语言的语法,语法比较接近自然语言,只要有一些英文基础,看下语法介绍,小程序就能看懂.4.学C#的书很多.我比较推荐中国台湾:章利民老师的书,你可以去书店看看.如果真的想学,还是建议买几本书.和看电子书的效果完全不是一个档次.希望对你有所帮助....

没有基础可以先学c++吗?
可以的,我就是做c++的。任何的编程语言,都没有说必须先学哪个再学哪个,虽然有人说先学习C语言,在学习C++,这本身来说,并没有依据,可能是他们是这么做的。c++的部分内容与C语言是相同的,所以先学习C其实就是学习了部分的c++,但任何一本C++的书中,都会包含这部分的内容,所以完全可以直接学...

...想问一下c语言适合我这种中专生学习吗?另外学起来难不难。
学习当然是可以学习,通常这个学习这个软件编程的,他并没有太大的这个学历要求,小学生都可以学这个软件编程,所以这个中专的学历呢是完全能够学习这个软件编程这个学科的话 。

没学过C语言可以直接学C#吗?
对基础语法和细节基本不讲。所以建议先学C,而且把它学好。不必担心会搞混淆,C#是C的继承,在其上加了面向对象的内容,并非是两个相象的语言,学好C只会帮助你学C#和C++。同时你说C#最有前途不是很准确,只是在某些领域很有前途罢了。例如在硬件领域C反倒比C#更适合。

自学C语言要先学习什么呢?
如果你在着手学习C之前,或者已经开始学习C,但是碰到了很多问题,应该再把计算机基础的书拿来好好看看。 如果你有足够的耐心,十足的毅力,应该再学习C语言之前学学汇编,这会让你对许多比较细腻的概念有清醒的认识,如果你不是那么有耐心(恕我直言,大部分人可能没有)。那么可以在看完一遍C语言的教材后再看,但是一定...

学c++要先学c吗
学C++不一定先学C,看个人需求。C语言的部分语法的确与C++相似甚至相同。如果有C语言的基础学习C++肯定会更快。但是,这并不意味着学习C++之前必须要学C语言,而且对于初学者来说在短时间内接触这两种语言反而会造成部分概念的混淆。如果是底层开发,就必须学习C语言。如果只是应用开发,可以直接从C++开...

临邑县18567498483: 没有学过c语言可以直接学c++么 -
南石安替: 当然可以.首先得先弄明白c++和c之间的区别c是面向过程的,c++是面向对象的.c++是把c中一些不足的地方有所改进,增添了类.

临邑县18567498483: 不学c语言可以直接学c++吗 -
南石安替: C++比C多添了些特性,是建立在C的基础上的,所以叫++嘛..如果想精通的话 要先学好C,否者直接学C++也是能学会的.

临邑县18567498483: 可以不学C语言而直接学C++吗?没有C基础学C++会特难吗? -
南石安替: 看c++入门经典是可以的,不一定非学c不可.c++是c的扩展,特点面向对象,继承,封装,多态性.

临邑县18567498483: 我不会C语言,我想直接学C++,可以吗 -
南石安替: C是面向过程的,C++是面向对象的.其实不懂C去学习C++,个人觉得还是挺好的,因为一开始你接触到的就是面向对象的思维,不像我,C语言很熟了,再学C++,很多思维方式转变不过来.所以你不用担心,完全当一种新的语言去学习

临邑县18567498483: 没学过c可以直接学习c++吗 -
南石安替: 可以,c++完全地包容了c语言. 其实c语言和c++书的前一半都讲的差不多一样,只有一点点细节不同. 语法方面,c语言里的所有控制语句在c++里都能用,但是c++里面所增加的一些 新的内容在c语言环境下就不能用了. 总之,一句话,从一开始可以直接学习c++,但是学习当中一定要认真,仔细. 祝你早日掌握c++!

临邑县18567498483: 没有编程基础直接学习C++可以吗? -
南石安替: 这个是可以的,正如楼上所说的,但是我还是强烈建议你还是先学习c吧,有了c的基础c++就不难了.我当初是先从java学的,感觉很轻松.如果想自学的话,最好网上找一个免费的老师带着你,我现在在教一个孩子,笨的可以.自学我感觉他压力很大啊!

临邑县18567498483: 直接学C语言学C++可以吗?我新手,想编木马之类的程序,请问我把C++做为第一门语言可以吗? -
南石安替: 直接学C++吧,C和C++看似相同,思想不同的,C是面向结构,从下往上架构,C++面向对象,从上往下架构. 2者也就语法类似而已,直接学C++你的起点更高点. 另外木马啥的,跟语言没多大关系,知道思路知道API函数就可以写,很简单的.多学学TCP/IP编程就可以了.但最好用面向对象的语言写.

临邑县18567498483: 学完C语言后 可以直接学C++吗 是不是还得把离散型数学和数据结构学完再学C++ -
南石安替: C++作为一门开发语言,只需要有一定的计算机基础知识就可以学的,对于离散,和数据结构,没有必要先学会,再来学C++的.但是,数据结构是一个编程的工作者必修课.除非你只是考个计算机2级.

临邑县18567498483: 对c语言编程啥都什么都不懂,直接学习c++可以吗 -
南石安替: 可以,c++和c语言也有很多相似的地方,c++难些,建议先学c语言,有个循序渐进的过程

临邑县18567498483: 问个菜鸟问题 不学C能直接学C++吗 -
南石安替: 可以的,C语言其实坑是很深的,完全可以直接来学C++

你可能想看的相关专题

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网