<b>初学者该若何学习C++以及编程</b>[VC/C++编程]
本文“<b>初学者该若何学习C++以及编程</b>[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
Javascript是世界上最受曲解的语言,其实C++何尝不是.坊间传播的错误的C++学习办法一抓就是一大把.我自己在学习C++的历程中也走了很多弯路,浪费了不少时间.
为什么会存在这么多错误熟习?缘由主要有三个,一是C++语言的细节太多.二是一些闻名的C++书籍总在(不管有意还是无意)表示语言细节的重要性和风趣.三是现代C++库的开辟哲学必须用到一些犄角旮旯的语言细节(但注意,是库计划,不是平常编程).这些共同塑造了C++社群的整体心态和哲学.
单是第一条还未必可以成气候,别的语言的细节也不少(固然比起C++起来还是小巫见大巫),就拿javascript来说,作用域法则,名字查找,closure,for/in,这些都是细节,并且此中还有违反直觉的.但很多动态语言的程序员的理念我猜大约是学到哪用到哪罢.但C++就不一样了,学C++之人有一种近似于被表示的潜在心态,就是一定要先把语言核心基本上吃透了才能下手写出漂亮的程序.这首先就错了.这个意识形成的缘由在第二点,C++书籍.市面上的C++书籍不可胜数,但有一个共同的缺陷,就是讲语言细节的书太多——《C++ gotchas》,《Effective C++》,《More Effective C++》,但无可厚非的是,C++是这样一门语言:要拿它满意现代编程理念的需求,特别是C++库开辟的需求,还必须得关注语言细节,乃至于在C++中操纵语言细节已经成了一门学问.比方C++模板在计划之初根本没有想到模板元编程这回事,更没想到C++模板系统是图灵完备的,这也就招致了《Modern C++ Design》和《C++ Template Metaprogramming》的惊世骇俗.
这些技术的呈现为什么惊世骇俗,打个比方,就好比是一块大家都认为已经熟习非常,再无奥秘可言的土地上,忽然某天有人挖到本来地下还储藏着最丰富的石油.在这之前的C++固然也有一些细节,但也还算简单掌握,那但是C++程序员们的happy old times,因为C++的一切都一览无余,everything is figured out.但是《Modern C++ Design》的出世奉告人们,“瞧,还有多少细节你们没有掌握啊.”于是C++程序员们久违的豪情被重燃起来,奋不顾身的踏入细节的沼泽中.特别是,模板编程将C++的细节进一步发掘到了极致——我们干吗关心触及类对象的隐式转换的优先级高低?看看boost::is_base_of便可以知道有多诡异了.
但最大的问题还在于,关于这些细节的关注还真有它符合的来由:我们要开辟现代模板库,要开辟active library,就必须动用模板编程技术,要动用模板编程技术,就必须操纵语言的犄角旮旯,enable_if,type_traits,乃至连早就古井无波的C宏也在浊世中重生,看看boost::preprocessor有多诡异就知道了,连C宏的图灵完备性(预编译期的)都被发掘出来了.为什么要做这些?好玩?标榜?都不是,开辟库的实际需求.但这也恰是最大的哀思了.在boost里面因实际需求而动用语言细节终究竟然能奇异的完成任务的最好教材就是boost::foreach,这个小设备对语言细节的发掘到达了惊天地泣鬼神的地步,不信你先试着自己去看看它的源代码,再看看做者介绍它的文章吧.而boost::typeof也不甘后来——C++语言里面有太多被“发现”而不是被“创造”的技术.莫非最初无意设置这些语言法则的家伙们都是oracles?
因为没有variadic templates,人们用宏加上缺省模板参数来实现近似效果.因为没有concepts,人们用模板加上析构函数的细节来完成近似工作.因为没有typeof,人们用模板元编程和宏加上无尽的细节来实现目标… C++开辟者们的DIY精神不可谓不强.
但是,假如仅仅是因为要开辟优异的库,那么触及这些细节都还是情有可原的,至少在C++09呈现并且编译器厂商跟上之前,这些都还能说是不得已而为之.但我们广大的C++程序员呢?大众是简单被误导的,我也曾经是.认为掌握了更多的语言细节就更牛,但实际倒是那些语言细节十有八九是平常编程用都用不到的.C++中众多的细节固然在库计划者手里面有其用武之地,但普通程序员则根本无需过量关注,特别是没有实际动机的关注.普通性的编码实践原则,以及基本的编程本领和基本功,乃至基本的程序计划理论以及算法计划.才是真正需求花时间掌握的东西.
以上是“<b>初学者该若何学习C++以及编程</b>[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |