C++的特点与编程建议(程序员必修)

       C++的含义当然是面向对象;但是掌握C++的语法并不代表就掌握面向对象的技术,这个世界上使用C++却不懂面向对象的人很多;C++仅仅是支持面向对象,也就是说他的语法包含面向对象的特点,但面向对象不是语言特质,而是一种思想;C不是面向对象的语言,但用C一样能写出具有面向对象思想的程序;
       什么是面向对象?这同样是需要亲身去体会的;我认为这是比学习C语言更需要时间的琢磨的事情;
       对相当一部分人而言,C++、C#和Java都不是面向对象的语言;
       自己不写类,或几乎不写类,或很少写类,或写类也就写那么几个的,都不是面向对象的程序员;
       只知道使用别人写的类的,也不是面向对象的程序员;
       只有自己写类,写很多类,写类库,自己调用自己写的类,类之间相互调用、继承,才能算得上是具有面向对象思想的程序员;此外,还要看类的层次、接口设计是否合理,才能区分掌握面向对象的技术程度;
       C++明显要比C#和Java难学,原因:第一,指针!C++是永远也不会放弃指针的,如果你接受不了它,那么请选择那些没有指针的语言;C和C++两大共同的奥义就是:内存管理,和程序员是不会犯错误的;如果程序员写错了代码,那么他一定是有他这样写代码的理由,这就是C/C++的理解;因此,指针这个最危险的东西成为了大师们最喜爱的利器,也是C/C++中最最重要的部分;所以,C++中不会出现内存回收器那种多余的东西;(因为程序员是不会犯错误的,那么内存泄露也是有他需要泄露的理由的,如果你觉得这句话很可笑,那么你还离大师很远呢,直到你认为它真的是太正确了)
       第二,凌乱的语法,因为它实际包含了两种语言的语法,而且部分C语言的关键字在C++中被赋于了新的含义,但又保留原来在C语言中的含义;如果你是初学者,当你不清楚编译器什么时候做C解释,什么时候做C++解释的时候,就容易产生混淆;通常,C++的程序员学习C#和Java很快,但C#和Java的程序员学习C++基本就和他们刚学C#和Java那会一样,几乎没有任何可以借鉴的地方;
       C++之所以会这样,这与它的发展历史有关,C++最早的时候叫C with Class,而早期版本的C++编译就是直接将C++代码转换为C代码再进行编译的;所以,C++现在的特性都是可以由C实现的,如果你能理解这一点,对你学习C++是很有帮助的;或者,你可以将C++理解为,为了面向对象而偷换概念的C;

       对于具体怎么学习编程,学习的时候一本书就足够了,而且不需要多么高深的书,不需要是外国人写的,学校发的教材就可以了,虽然你最后会发现它错误百出,又不全面,但高手都是以这样的书起步,最后又把它扔掉的;对于书的态度,只要它的水平比你高就可以了;
       学习没有任何诀窍,也没有太多的经验可以传授的,听课、看书,然后编习题,最好是看一章编一章的习题,不要把整本书都看完了再去编程;打开书编书本的例子,合上书编书本的习题,习题的正确与否以你程序的效果为准,而不是正确答案或别人写的程序;
       我个人的经历,大学里没有看课本以外的编程书,没有做老师布置的以外的习题,所有习题都是自己独立完成的;所以,书上的例子和习题其实我也是没有做全的,如果你做全了,那我佩服你;起码做到和我一样,你就是全系C语言第一名!

       最后是关于书的选择,首先是针对那些从零学起,白手起家的同学,前面我列举的书都不适合你,普通的大学教材(学校里发的)就最适合你了,个人建议潭浩强(我就是用他的C语言教材的)和钱能(没看过,听说不错)的;
       对于已经学会语法,能够合上书独立编程,且累计编写的程序达到1万行的,可以看前面我列举的书,直到觉得这些书很无聊为止;
       对于接触C/C++三年以内的同学,不要看任何关于实际开发环境的书籍,如:封面上带有Microsoft Visual C++字样的书,号称多少天学会或精通C++的书(那是笑话你也信?),各种编程安例、实例,什么一百例,一千例的书(一百万例也不要去理他),看上去很时髦的书,什么网络编程啊,什么图象、声音、多媒体啊,什么黑客啊,什么网站开发啊,以上通通都不要去看,有百害而无一利;
       其实很简单,从菜鸟到高手用不了几本书,但需要敲很多个键盘.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值