注册 登录
编程论坛 C++教室

欢迎大家来讨论,如何学习C++

max668 发布于 2010-08-15 01:41, 2074 次点击
相信很多人学语言都是从C语言开始的,那么,C和C++的区别在哪?特别容易混淆的地方又在哪?学习C++和学习C语言有什么异同!相信是很多初学者都想知道的问题。
又或者可以推荐些好书阿。总之,希望大家畅所欲言!到时侯再发一贴,好好总结一下C和C++。

有没有学单片机的贴友呢?
24 回复
#2
2010-08-15 02:27
看到这位兄弟,这么热心,我想我说下我的看法,方法固然重要,认真坚持努力的去学去练才最重要,这些日子太忙了,过些时候,我总结一下发出来。
#3
max6682010-08-15 02:45
嗯,谢谢
#4
towhee2010-08-16 17:00
单片机种类虽多,但大同小异,我推荐先学C,然后汇编,然后C++(如果三门语言都用到的话)
#5
书中叶2010-08-16 20:40
C++是C的超集,C++是在C的基础上发展的,C的所有代码在C++上都能应用,而C++的代码在C上不能应用,但是他们各有各的优点,C++是面向对象的语言,而C是结构化的语言;C的格式很自由,C++的格式较严整

C语言有标准的函数库,它们松散的,只是把功能相同的函数放在一个头文件中;而VC++对于大多数的函数都是有集成的很紧密,特别是C语言中没有的VC++6.0

中的API是对Window系统的大多数API有机的组合,是一个集体。但你也可能单独调用API。

特别是VC++中的图形处理,它和语言的图形有很大的区别。C语言中的图形处理函数基本上是不能用在中VC++中的。主持人注:C语言标准中不包括图形处理。这
里的C语言的图形处理指的是DOS下的C语言。

C和VC++中都有结构的概念,但是在C语言中结构只有成员变量,而没成员方法,而在VC++中结构中,它可以有自己的成员变量和成员函数。但是在C语言中结构
的成员是公共的,什么想访问它的都可以访问;而在VC++中它没有加限定符的为私有的。

C语言可以写很多方面的程序,但是VC++可以写得更多更好,VC++可以写基于DOSr程序,写DLL,写控件,写系统。

C语言对程序的文件的组织是松散的,几乎是全要程序处理;而vc++对文件的组织是以工程,各文件分类明确。

VC++中的IDE很智能,和VB一样,有的功能可能比VB还强。

VC++对可以自动生成你想要的程序结构使你可以省了很多时间。有很多可用的工具如加入MFC中的类的时候,加入变量的时候等等。

VC++中的附加工具也有很多,可以进行系统的分析,可以查看API;可以查看控件。

调试功能强大,并且方法多样。

先学C对C++的学习有莫大的好处
个人认为,如果研究方向是运算的话就学C,如果方向是软件设计的话就学C++
我正在用《C++Primer第4版》+《习题解答》,比较推荐,对计算机高级语言(VF\VB\VC等)稍有了解的人会很容易入门(一天左右)

学习的时候最好常来编程论坛把不懂的问题问会,毕竟C和C++都很抽象,如果身边有懂得的人就更好了,要知道,学习向来都不是易事

我就说这么多吧,希望会有更多的人来学习C++

[ 本帖最后由 书中叶 于 2010-8-16 20:51 编辑 ]
#6
max6682010-08-17 00:51
感谢书中页,大家一起加油哦
#7
hmsabc2010-08-17 13:26
我觉得先学好一本书,吃得越透越好,心不能大,不要今天看这本,明天看那本的。其次就是多写代码,如果能记下一些有典型意义的代码,那就好像在大海里有了指南针一样,对今后自己编程有着重要的指导作用。
#8
grh20272010-08-17 20:12
谢谢大家的指导,我刚开始学编程,买了VB,C#,C++,VC++好几本书,现在感觉自己真的是有点乱整。
先看c和c++了,以后再看vc++,书先留着了
#9
max6682010-08-17 21:59
感觉大家积极性不高,顶置了那么久,也没什么人回答!可惜我功力不够,不然,就给好好谈谈!
#10
mxs8102010-08-17 23:13
首先,我不想说c和c++的异同,因为我自己也不明白,嘿嘿,我是直接学的c++;
其次,任何一门语言的学习应该遵循相同的步骤:
    1、入门书籍-->认识这门语言的基本语法知识,这个步骤有可能是先甜后苦,最后苦尽甘来,
哈哈,打完基础你会觉得自己好像能个写点东西啦,这个阶段初学者一定要注意要有耐心读完
任何一本入门书籍,不管书写的咋样,总会有需要你学习的地方。
    2、提高书籍-->当你学会了一门语言的基本操作之后,就应该提高自己的语言造诣了,
不只是简单的完成自己的作品,而是要将自己的作品(产品、项目)变得迅速、稳定,
这时候你就需要读这门语言更深层次的书籍或者文档了。
    3、登峰造极-->最后的阶段应该是多读经典源码了。经典的东西总是有它经典的原因,
比如说是stl源码、linux源码之类的,如果在能够使用的基础上,读其源码实现,自然会使自己的
语言水平更上一层楼啊~~


个人观点,仅供参考,欢迎拍砖
下面是回复另外一个帖子的重复内容,列在这里,可以使你更好的理解上边的一段文字:

c++学习应该是一项和艰巨的任务,需要静下心来慢慢体会;
有关c++的书籍可以参考以下内容,以前从网上搜的:

层级一:语法/语意(C++)
[Lippman2000] Essential C++
Essential C++,by Stanley B. Lippman Addison Wesley Longman 2000,276 pages
Essential C++ 中文版 ,侯俊杰 译,282页  
[Gregory95] C++:The Core Language
C++:The Core Language by Gregory Satir 1995 O'Reilly
C++语言核心,张铭泽 译 ,236页
[Deitel98] The Complete C++ Training Course
The Complete C++ Training Course 2/e by Harvey M.Deitel 1998 Prentice Hall
C++大学教程(第二版),邱仲潘等 译,816页
[Stevens2000] Standard C++ Bible
Standard C++ Bible   2000  Al Stevens   IDG
标准C++宝典,林丽闽等 译,766页
[Eckel2000] Thinking in C++
Thinking in C++ 2/e   Bruce Eckel  2000 1470 pages Prentice Hall
C++ 编程思想,刘宗田等 译,420页
[Lippman98] C++Primer
C++ Primer,3rd Editoin,by Stanley Lippman and Josee Lajoie
Addison Wesley Longman,1998 1237 pages
C++ Primer 中文版,侯俊杰 译,1999,1237页
[Struostrup2000] The C++ Programming Language
The C++ Programming Language,Special Editoin,by Bjarne Stroustrup
Addison Wesley Longman,2000,1017 pages
C++程序语言经典本,叶秉哲 译,儒林 1999
[ANSI C++] C++规格书 1998.9.1 PDF格式
ANSI C++ 1996 Draft

层级二:专家经验(C++/OOP)
[Meyers96] More Effective C++
More Effective C++,by Scott Meyers,Addison Wesley,1996,318pages
More Effective C++中文版,侯俊杰,培生 2000. 318页
[Meyers98] Effective C++
Effective C++,Second Edition,by Scott Meyers,Addison Wesley Longman,1998.256pages
Effective C++ 2/e 中文版,侯俊杰,培生 2000.256页
[Sutter99] Exceptional C++
Exceptional C++,by Herb Sutter,Addison Wesley Longman,2000.208pages
Exceptional C++中文版,侯俊杰,培生 2000.248页
[Sutter2001]More Exceptional C++
More Exceptional C++ by Herb Sutter,Addison Wesley Longman,2001.

层级三:底层机制(C++ Object Model)
[Ellis90] The Annotated C++ Reference Manual
The Annotated C++ Reference Manual,by Margaret A.Ellis and Bjarne Stroustrup
Addison Wesley Longman,1990,447 pages.
[Lippman96] Inside the C++ Object Model
Inside the C++ Object Model,by Stanley Lippman,Addison Wesley Longman,1996,280pages
深度探索C++物件模型,侯俊杰 译

层级四:设计观念的复用(C++/Patterns)
[Gamma95] Design Patterns:Elements of Reusable Object Oriented Software,
by Erich Gamma,Richard Helm,Ralph Johnson,and John Vlissides,Addison Wesley,1995.395pages
设计模式,李英军等译,机械工业出版社,2000.254页
[Alex2001]Modern C++ Design: Generic Programming and Design Patterns Applied
by Andrei Alexandrescu,Addison-Wesley,2001,352Paper

Genericity/STL系列:
第一个境界是使用STL:
[Josuttis99]:The C++ Standard Library -A Tutorial and Reference,by Nicolai M.Josuttis,
Addison Wesley 1999.799pages
第二个境界是了解泛型技术的内涵与STL的学理:
[Austern98]:Generic Programming and the STL -Using and Extending the C++ Standard
Template library,by Matthew H.Austern,Addison Wesley 1998.548page

第三个境界是扩充STL:
[Stepanov2001]:C++ Standard Template Library by P.J.Plauger,Alexander A.Stepanov,
Meng Lee,David R.Musser,Prentice Hall 2001
#11
max6682010-08-17 23:42
大家好好领会
#12
pangding2010-08-18 00:59
其实要想应用好一门语言,不用要求对它有太深的了解。只要知道一些必要的基础,就可以写出好的程序。

编程其实最重要的的经验的积累,你必须知道,写这个程序什么地方最关键,什么地方最容易出错,什么样的设计才最有品位。
大家应该都知道,巨人一般一辈子只干一件事。做编译器的人一辈子都做编译器,做编辑器的人也是,做邮件处理的,做数值计算的,做游戏的也一样。
这和写作挺像的,名作家都有他自己的风格,写武侠小说的就不写言情小说,写科幻小说的就不写古装剧。就是因为他自己写了很多年,才知道如何把握人物的性格,剧情的节奏。换一种故事类型,这些东西都不一样了。

但是文学家不一定语言特好,你让他分析句法呀,问问他倒装句式有什么作用呀,他很可能不知道。因为他没是指着这些东西写作的。相反那些一天到晚琢磨語法的人,根本不写作。计算机语言也一样,用得好的人不一定什么語法都会。最精通語法的人,是标准委员会的那帮语言律师,他们几乎不会一天到晚写程序。当然基础的东西肯定得会了,不太会说中文的人不可能用中文写作文吧~
#13
时尚de往往2010-08-20 09:24
嗯,谢谢
#14
2010-08-20 14:06
上次说总结一下,可一直没有空闲的时间,现在我们虚拟机要升级,趁这个时间,我说下我学习的方法希望对大家有帮助。我觉得,学习一门语言关键是要把握这个语言的整体思想,比如我学C的时候,基础知识是在寒假一个月弄懂的,之后开发了一个很广泛的图书管理系统,现在一直在研究图形设计这一块,因为工作忙,基本也搁浅了。由于我比较爱玩游戏爱看武侠之类的书,大学也是短短徐徐的学了很多语言,很少深究。不过我方向比较明确,就是搞懂VC++,然后自己开发一套简单的系统。虽然花在学习上的时间并不多,但是我学的时候,注重效果,就是每学必练,虽然时间少,但我感觉收获还是蛮大的。由于我是非计算机专业的学生,对数据结构仔细研究过,算法一窍不通,现在正在腾出时间学习。
我们现在用delphi的3层结构搞开发,感觉技术不在是那么重要了,而是整体设计的思想,以及对一个项目的架构,如何实现用户需要的功能,才最重要。希望初学者在学习技术的同时,能看下管理类的书,也并不是要学,了解那种思想就可以了。
最后祝大家生活愉快,学习更上一层楼。
#15
龙祥2010-08-21 21:29
刚学,赐教了
#16
龙祥2010-08-21 21:32
回复 14楼 gexin
管理类的书是什么书...能不能举例说明下,谢谢
#17
伟伟1102010-08-22 15:49
我想应该多自己写程序,练得多了,经验也就多了,关键就是自己动手操作
#18
hk780962010-08-23 09:40
不错不错  
#19
zheng17962010-08-23 23:09
哎,我对现在的工作不满意,想学学C++,算是边工作边学习把。大家一起加油啊!
#20
towhee2010-08-24 10:15
回复 16楼 龙祥
我想gexin指的是项目开发和项目管理类的书
#21
mxs8102010-08-24 10:48
以下是引用zheng1796在2010-8-23 23:09:15的发言:

哎,我对现在的工作不满意,想学学C++,算是边工作边学习把。大家一起加油啊!
只要兴趣在,一定可以学好的,祝你好运~~
#22
ycsky852010-09-07 01:28
我也来谈谈学习c++。
我现在也在学习c++,主要是primer 4 + 数据结构。首先计算机语言无论哪种,基础最重要,踏踏实实的一步一步学习,做书后的习题,
每天动手写代码是一定要坚持的,只有边写才能学的更透彻。
基础的学习完后可以边看数据结构边写一些小程序,我现在就是这个阶段,然后看一些库类原型,STL之类的东西。
我看的资料不多,c++的就《c++primer》,数据结构的就《数据结构c++语言描述》。
个人认为基础要扎实,原理要精通。之后就是数据结构和调试及优化的东西。
按我的学习思路是50%语言基础,30%数据结构,20%调试和优化。
个人学的的经验,希望高手指点

[ 本帖最后由 ycsky85 于 2010-9-7 01:33 编辑 ]
#23
ToBeOOP2010-09-07 08:51
学习了。。。。
#24
hcjsj2010-09-07 13:43
标记下
#25
北风1232010-09-10 11:38
小弟我学c++一年了,感觉还是刚进门一样,对这个感冒。。。
1