??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲国产精品无码久久九九,久久精品人成免费,热综合一本伊人久久精品http://www.shnenglu.com/snake/初学C++Q希望能得到大家的支持!zh-cnWed, 07 May 2025 00:54:58 GMTWed, 07 May 2025 00:54:58 GMT60关于for语句http://www.shnenglu.com/snake/archive/2006/05/24/7601.htmlsnakesnakeWed, 24 May 2006 15:54:00 GMThttp://www.shnenglu.com/snake/archive/2006/05/24/7601.htmlhttp://www.shnenglu.com/snake/comments/7601.htmlhttp://www.shnenglu.com/snake/archive/2006/05/24/7601.html#Feedback0http://www.shnenglu.com/snake/comments/commentRss/7601.htmlhttp://www.shnenglu.com/snake/services/trackbacks/7601.htmlfor(int val=1;val<=10;++val)
        sum+=val;
重述一下for语句的执行过E:(x)
1、创建valq初始化?
2、测试val是否于式等?0
3、如果val 于或等?0Q则执行for循环体,把val加到sum中。如果val大于10退出@环,接着执行for语句体后的第一条语句?br />4、val递增
5、重复第二步的测试,只要条g为真Q就l箋执行其余步骤?br />q里要注意的是如果条件ؓ(f)真的话,E序是先执行?jin)@环体sum+=val再执?+val?br />q有是退出for循环后,变量val׃可再讉KQ@环终止后再用val 是非法的Q当然ƈ不是所有的~译器都是这栗在C++标准化之前在循环体外使用是可以的Q但标准化之后就不可以了(jin)Q要注意新旧教材的区别?br />q次关于C++的学?fn)笔记就写这么多了(jin)?/p>

snake 2006-05-24 23:54 发表评论
]]>
问题http://www.shnenglu.com/snake/archive/2005/11/28/1375.htmlsnakesnakeMon, 28 Nov 2005 14:04:00 GMThttp://www.shnenglu.com/snake/archive/2005/11/28/1375.htmlhttp://www.shnenglu.com/snake/comments/1375.htmlhttp://www.shnenglu.com/snake/archive/2005/11/28/1375.html#Feedback18http://www.shnenglu.com/snake/comments/commentRss/1375.htmlhttp://www.shnenglu.com/snake/services/trackbacks/1375.htmlint main()
{
 int x,i=3;
 x=(++i)+(++i)+(++i);
 cout<<x<<endl;
 return 0;
}
今天从一个群里跟几个朋友讨论?jin)一下这个程序,我感觉应该是18Q可是在VC++6.0上编译的l果?6?img src ="http://www.shnenglu.com/snake/aggbug/1375.html" width = "1" height = "1" />

snake 2005-11-28 22:04 发表评论
]]>
[转蝲]C++E序设计之四书五l(下篇Q?/title><link>http://www.shnenglu.com/snake/archive/2005/11/18/1181.html</link><dc:creator>snake</dc:creator><author>snake</author><pubDate>Thu, 17 Nov 2005 19:22:00 GMT</pubDate><guid>http://www.shnenglu.com/snake/archive/2005/11/18/1181.html</guid><wfw:comment>http://www.shnenglu.com/snake/comments/1181.html</wfw:comment><comments>http://www.shnenglu.com/snake/archive/2005/11/18/1181.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.shnenglu.com/snake/comments/commentRss/1181.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/snake/services/trackbacks/1181.html</trackback:ping><description><![CDATA[<P>我在上篇中“盘点”了(jin)TCPL和D&E以及(qing)入门教程、高效和健壮~程、模板和泛型~程{方面共十几本C++好书。冬L来,让我们lC++书籍_ֽ之旅J </P> <P>标准?</P> <P>当我q在研究院工作时Q与同院另外两家研究所合作开发过一个大型水利枢U调度集成项目。我们三家Y件系l之间都要相互通信。在调试通讯模块Ӟl心(j)的客P一名好学的pȝ理员)(j)发现对于同一通信规约的解释代码,我的不超q?0行,而对方的则超q了(jin)150行且很难看懂。这位系l管理员很纳P我说大家~程风格和习(fn)惯不一P我用了(jin)标准库,而他使用?jin)传lC~程风格以及(qing)他所?fn)惯的另外一些技术?</P> <P>别误?x)!我绝无贬低这位合作伙伴的意思。事实上Q我寚w些真正有着深厚的C~程功力的程序员常常怀有钦佩之?j)。毕竟,C++能有今天的成功在很大E度上缘于它深深地植根于C。作Z名C++E序员,倘若不熟(zhn)C++中的CQ我往往?x)认Z的基本功是不扎实的,他的技术底气是不的?</P> <P>不过话又说回来,C++是一U多范型QparadigmQ编E语aQ具体采用哪U编E风|专业E序员应该知道视具体情况而定。作Z名经帔R要在现场做即兴开发的目负责人,Z(jin)短^快地解决当务之急,我习(fn)惯尽量采用现有的库(和组Ӟ(j)。效率(以及(qing)强健性)(j)久经验证的C++标准库已l摆在那儿了(jin)Q何乐而不用呢Q?</P> <P>Nicolai M. Josuttis, The C++ Standard Library: A Tutorial and Reference <BR>《C++标准E序库:(x)自修教程与参考手册》,华中U技大学出版C?</P> <P>q是一本百U全书式的C++标准库著作,是一本需要一再查阅的参考大全。它在完备性、细致性以?qing)精性方面都是无与u比的。本书详l介l了(jin)每一标准库组件的规格和用法,内容늛包括和本地化在内的整个标准库而不仅仅是STL。正如本书副标题所C,它首先适合作ؓ(f)教程阅读Q尔后又可用作参考手册?</P> <P>显易懂的写作风g得这本书非常易读。如果你希望学习(fn)标准库的用法q尽可能地发挥其潜能Q那你必L有这本书。正如网l上所aQ这本书不仅仅应该摆在你的书׃Q更应该攑ֈ你的?sh)脑桌上。我向每一位职业C++E序员强烈推荐?</P> <P>Angelika Langer, Klaus Kreft, Standard C++ IOStreams and Locales: Advanced Programmer's Guide and Reference <BR>《标准C++输入输出与本地化》,人民邮电(sh)出版C?</P> <P>C++标准库由STL、流和本地化三部分构成。关于STL的书?jng)面上已l有不少Q但|见和本地化方面的专著。本书是q两个领域中最优秀的一本,q今为止没有M一本书比这一本更全面详尽地讨Z(jin)和本地化。如果你不满于停留在“会(x)用”流库的层面Q千万不要错q它?</P> <P>2001q夏天,我草草翻阅过q本书的中文版,从内容到包装都给我留下了(jin)比较深刻的印??不过负面的居多一些?003q秋天,无意中得知某|络书店正以低h甩卖q本书的中译本,情不自禁Q一阵唏嘘?</P> <P>Scott Meyers, Effective STL: 50 Specific Ways to Improve Your Use of the Standard Template Library <BR>《Effective STLQ媄(jing)印版Q》,中国?sh)力出版C?</P> <P>dScott 的《Effective C++》和《More Effective C++》的中译本之后,我一直期待这本书的中文版。我从潘爱民先生的个Z上?jin)解刎ͼ他和他的合作伙伴g早已完成?jin)这本书的翻译工作,可惜至今市(jng)面上仍不得见。幸q的是,我们可以看到它的原版?</P> <P>本书是用STL的程序员必读之作。在q本书中QScott向我们讲qSTL容器和算法的工作机制以及(qing)如何以最x式用它们。和Scott的其他作品一Pq本书的写作风格清晰、精,h极佳的可L。看q这本书以后Q我想你也许?x)和我以及(qing)其他C++E序员一样生这L(fng)xQScott什么时候会(x)写出一本“More Effective STL”? </P> <P>关于STLQ我q提醒你留心(j)Matthew H. Austern的《Generic Programming and the STL: Using and Extending the C++ Standard Template Library》(《泛型编E与STL》,中国?sh)力出版C)(j)。这本书散发着厚的学院气息。Andrew Koenig和Barbara Moo在《Accelerated C++: Practical Programming by Example》一书末N重推荐另外两本进阶好书(除了(jin)他们自己的《Ruminations on C++》外Q,其中一本是TCPLQ另外一本就是本书! </P> <P>|络~程 </P> <P>在网l编E时代,C++应该扮演着怎样的角Ԍ让ACEQAdaptive Communications EnvironmentQ来告诉你?</P> <P>Douglas C. Schmidt, Stephen D. Huston, C++ Network Programming, Volume 1: Mastering Complexity with ACE and Patterns <BR>Douglas C. Schmidt, Stephen D. Huston, C++ Network Programming, Volume 2: Systematic Reuse with ACE and Frameworks <BR>《C++|络~程Q卷1Q运用ACE和模式消除复杂性》,华中U技大学出版C?<BR>《C++|络~程Q卷2Q基?ACE 和框架的pȝ化复用》,?sh)子工业出版C?</P> <P>采用C++q行企业U网l编E,目前ACEQ以?qing)这两本书?j)是一个值得考虑的选择。ACE是一个面向对象、跨q_、开放源码的|络~程框架Q目标在于构建高性能|络应用和中间g。Douglas是ACE的创始hQStephen则已为ACE提供?jin)数q的技术支持和N服务Q两位都是ACECQ是的,ACE的媄(jing)响和实际应用的程度已lŞ成了(jin)一个社)(j)的专家?</P> <P>ACEq不单单被大学和研究所q捧Q它已经被成功地应用于世界上成千上万个商业应用中。在?sh)信、宇航、医药和财经领域的网l系l中QACE已经ql发挥着重要的作用。如果你准备开发高性能通讯pȝQ你应该考虑考虑q一汇集世界尖专家智慧的成果?</P> <P>除了(jin)使用C++面向对象设计技术和模板{高U语aҎ(gu)外QACEq运用了(jin)大量的模式。《C++|络~程》卷1和卷2q不仅仅教你关于ACE的方斚w面,它还?x)教l你模式和通用框架设计{高U技术等。所以,作ؓ(f)一名中、高UC++E序员,即你很进行正儿八l的C++|络E序设计Q阅读这两本书同样可以从中受益?</P> <P>是的Qƈ非所有网l应用都要用Web服务器(以及(qing)其他应用服务器)(j)和重量lg模型Q换个思\Q它们或怹可以从轻量的ACElg中获益?</P> <P>杂项 </P> <P>以下q几本书之所以被列入“杂”单元,只是因ؓ(f)我没有考虑出更合适的归类Ҏ(gu)Q它们和上面的书c一P值得一诅R?</P> <P>Bruce Eckel, Thinking in C++, Volume 1: Introduction to Standard C++ (2nd Edition) <BR>Bruce Eckel, Thinking in C++, Volume 2: Practical Programming (Second Edition) <BR>《C++~程思想Q第2版)(j)W?P(x)标准C++导引》,机械工业出版C?<BR>《C++~程思想Q英文版 W?版)(j)》,机械工业出版C?</P> <P>《Thinking in C++》的W?版于1996q荣获“Y件研发”杂志评选的图书震撼大奖。最新推出的W?版对内容q行?jin)大q改写和调整Q以反映C++标准化带来的影响以及(qing)q几q面向对象领域最新研I和实践成果。“输入输入流”、“多重扎(k)、“异常处理”和“运行时cd识别”等高主题q同C++标准化以后增加的一些内容则被放入第二卷中。Bruce是一名经验丰富的C++讲师和顾问,其培训和写作l验都是世界一水准,他的作品比那些“玩”的技术h员写的东西更能吸引读者。事实上Q在同类图书中,对于大多数读者而言Q这本书的可L要过TCPL和《C++ Primer》。顺带一提,讉K作者的站点Q你可以先睹W二L(fng)风采?</P> <P>Andrew Koenig, Barbara E. Moo, Ruminations on C++: A Decade of Programming Insight and Experience <BR>《C++沉思录》,人民邮电(sh)出版C?</P> <P>Andrew是世界上屈指可数的C++专家。这是一本关于C++~程思想和程序设计技术而非语言l节的著作。如果你已经h一定的基础Q这本书教你在q行C++~程时应该怎样思考,应该如何表达解决Ҏ(gu)。整本书技术表N彻Q文字通俗易懂。Bjarneq样评h(hun)q本书:(x)本书遍布“C++是什么、C++能够做什么”的真知D?</P> <P>Stanley B. Lippman, Inside The C++ Object Model <BR>《深度探索C++对象模型》,华中U技大学出版C?<BR>《深度探索C++对象模型Q媄(jing)印版Q》,中国?sh)力出版C?</P> <P>从编译器的角度观察C++可以使你知其然ƈ知其所以然。本书探讨了(jin)大量的C++面向对象E序设计的底层运作机Ӟ包括构造函数、函数、(f)时对象、ѝ虚拟、模板的实例化、异常处理、运行期cd识别{,另外q介l了(jin)一些在实现C++对象模型q程中做出的权衡折衷。喜Ƣ刨栚w底的C++E序员不要错q这本书?</P> <P>Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, Design Patterns: Elements of Reusable Object-Oriented software <BR>《设计模式:(x)可复用面向对象Y件的基础》,机械工业出版C?<BR>《设计模式:(x)可复用面向对象Y件的基础Q英文版Q》,机械工业出版C?</P> <P>设计可复用的面向对象的YӞ你需要掌握设计模式。本书ƈ非专为C++E序员而写Q但它采用了(jin)C++Q以?qing)SmalltalkQ作Z要示例语aQC++E序员尤其易于从中受益。四位作者都是国际公认的面向对象软g领域专家Q他们将面向对象软g的设计经验作计模式详l记录下来。这本书影响是如此深q,以至于四位作者以?qing)本书都被昵UCؓ(f)GoFQGang of FourQ。本书学院气息浓厚,行文风格严}z,虽然它不如某些讲解模式的书籍易读Q但真正要精准地理解设计模式Q本书是l极权威。学?fn)设计模式,q本书需要一而再、再而三的咀嚹{顺带一句:(x)请将设计模式化作开拓思维的钥匙,切莫成ؓ(f)闭思维的枷锁?</P> <P>q有一些C++好书值得一读,恕此处无法一一列出。例如John Lakos的著作《Large-Scale C++ Software Design》(《大规模C++E序设计》,中国?sh)力出版C)(j)和侯捷先生的《STL 源码剖析》(华中U技大学出版C)(j){?</P> <P>《STL 源码剖析》是一本很有特色的书,但我认ؓ(f)它还可以更好。我个h期待侯捷先生自第一版发行以来经q对模板技术的沉淀(wn)和再思考之后,再写一本剖析得更深入、更透彻q且更全面的“第二版”。遗憄是,侯捷先生在完成《C++ Templates: The Complete Guide》一书的译后似乎决定暂时告别模ѝ泛型编E和STL领域?</P> <P>2004q??1日补充:(x)我目前最常查阅的两本参考书是《C++标准E序库》和《STL源码剖析》。当然了(jin)Q这与我q内的写作计划有很大的关pR?</P> <P>使用C++成功开发大规模软gpȝQ不仅需要很好地理解大多数C++书籍中讲q的逻辑设计问题Q更需要掌握《大规模C++E序设计》中讲述的物理设计技术。当?dng)q本书的有点过时了(jin)Q不q,如果你的_֊和金钱都比较宽ԒQ买一本看看ƈ无坏处?</P> <P>xQ我x必要声明一下,有一些(好)(j)书没有得到推荐,主要原因如下Q?</P> <P>* 以上q些书已l够多、够好?jin)?<BR>* 我不?x)推荐通过正常渠道很难购买到的书籍 ?不管是中文版q是英文版?<BR>* 作(译)(j)者名气大不影响我的推荐。我们是在看书,不是看h?<BR>* 我不?x)推荐我从来没有看过的书。我臛_要看q其中的某个版本Q包括电(sh)子档Q。这个“看”,一般指“认真阅诠Z,不过有一些也只能是“浏览”?</P> <P>l语 </P> <P>作ؓ(f)一名普通技术写译者,我深知技术创作和译的艰辛(和快乐)(j)Qƈ多多少?jin)解一些有x术书c创作、翻译、制作、出版以?qing)?jng)场推介背后的l节。今天,我不?x)再对一本看上去差强人意的图书信口开沟뀂罗列同一本书的各U版本的用意只在于ؓ(f)你多提供一些信息,让你多一U选择?</P> <P>在本文成文的后期Q我lBjarne写了(jin)一信Q请教如果他来写q篇文章?x)怎么写。他l了(jin)我简明扼要的。在肯定以上列出的绝大部分图书都是世界顶水q的C++著作的同ӞBjarne提醒我别忘了(jin)向专家E序员推荐《The C++ Standard : Incorporating Technical Corrigendum No. 1》。这本书?C++标准规范的“图书版”,Bjarne亲自Z作序?</P> <P>Bjarneq友好地提醒我,在我的推荐列表中没有哪一本有助于C++E序员进行W(xu)indows~程 ?q正是我的本意。在q篇文章中,我只推荐、点评^C立的C++著作Q网l编E除外)(j) ?和操作系l无养I和集成开发环境无养I我甚臛_惛_们和~译器也无关。你可以Ҏ(gu)业务开发需要,选读自己喜爱的领域相关的C++书籍?</P> <P>说到“系l无兟뀁^C立”,我不由得惌v?jin)“抽象层”的概念。开发实际应用的C++E序员通常工作于特定操作系l、特定开发环境和特定业务领域之中Q而对标准C++和C++标准库扎实而深ȝ把握Q无疑是你得以在不同的操作系l、不同的开发环境以?qing)不同的业务领域之间U|驰骋的“抽象”本钱?BR></P><img src ="http://www.shnenglu.com/snake/aggbug/1181.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/snake/" target="_blank">snake</a> 2005-11-18 03:22 <a href="http://www.shnenglu.com/snake/archive/2005/11/18/1181.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转蝲]C++E序设计之四书五l(上篇Q?/title><link>http://www.shnenglu.com/snake/archive/2005/11/18/1180.html</link><dc:creator>snake</dc:creator><author>snake</author><pubDate>Thu, 17 Nov 2005 19:21:00 GMT</pubDate><guid>http://www.shnenglu.com/snake/archive/2005/11/18/1180.html</guid><wfw:comment>http://www.shnenglu.com/snake/comments/1180.html</wfw:comment><comments>http://www.shnenglu.com/snake/archive/2005/11/18/1180.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/snake/comments/commentRss/1180.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/snake/services/trackbacks/1180.html</trackback:ping><description><![CDATA[<P>C++是一门广泛用于工业Y件研发的大型语言。它自n的复杂性和解决现实问题的能力,使其极具学术研究价值和工业价倹{和C语言一PC++已经在许多重要的领域大获成功?</P> <P>然而,一个不可否认的现实是,在低阶程序设计领域,C++挤压着C同时也在承受着C的强烈反弹,而在高阶E序设计领域QJava和C#正在不断蚕食着C++的地盘。也许C++与C合ؓ(f)一体永q都是一个梦惻I也许Java和C#的狂潮终迫使C++回归本位 ?回到它有着Ҏ(gu)性优势的开发领域:(x)低pȝE序设计、高U大规模高性能应用设计、嵌入式E序设计以及(qing)数值科学计等。果真如此,我认未尝不是一件好事?</P> <P>C++吸引如此之多的智力投入,以至于这个领域的优秀作品Q包括重量的Y件品、程序库以及(qing)书籍{,C胜数。文题“C++E序设计之四书五l”一个不太严格的含义是:(x)C++E序设计之四??五经。是的,在本文(?qing)其下篇Q中Q我分门别cL?0多本C++好书Q你可以Ҏ(gu)自己的需要选读?</P> <P>TCPL和D&E </P> <P>TCPL和D&E分别是《The C++ Programming Language》和《The Design and Evolution of C++》的Uͼ均出自Bjarne Stroustrup之手。我它们单列出来,首先是因为Bjarne是C++语言的创,然后是因为比“首先”那个原因更重要的原因:(x)q两本书是C++领域毋庸|疑的杰作。说它们是C++语言圣经Qƈ不ؓ(f)q?</P> <P>Bjarne Stroustrup, The C++ Programming Language (Special 3rd Edition) <BR>《C++E序设计语言Q特别版Q》,机械工业出版C?<BR>《C++E序设计语言Q特别版Q(英文影印版)(j)》,高等教育出版C?</P> <P>q今为止QTCPL是除?jin)C++标准文献之外最权威的C++参考手册。和大多Ch的看法不大一P我认为Bjarne的文字语aq不逊色于他所创徏的程序语aQ至我喜欢q种学院气息厚的作品。本书对C++语言的描q轮廓鲜明、直截了(jin)当。它从C++语言创徏者的角度来观察C++Q这是Q何别的作者和书籍做不到的 ?没有M人比Bjarne自己更清楚该怎么来用C++?</P> <P>q是一本严肃的著作Q以中、高UC++开发h员ؓ(f)目标读者。如果你是一名有l验的C++E序员,需要了(jin)解更加本质的C++知识Q本书正是ؓ(f)你而写。它不是那种让你看了(jin)?x)不断窃喜的书Q需要用?j)体会(x),反复咀嚹{在阅读q程中,L(fng)别留?j)Bjarne先生?jin)什么,又对什么一语带q。我个h比较喜欢q本书的W四部分“用C++做设计”,q样的内容在cM的程序设计语a书籍中很隄??我甚臌为Bjarne应该这部分独立出来单独写一本书?</P> <P>Bjarne Stroustrup, The Design and Evolution of C++ <BR>《C++语言的设计和演化》,机械工业出版C?<BR>《C++语言的设计和演化Q英文版Q》,机械工业出版C?</P> <P>D&E是一本关于C++语言设计原理、设计决{和设计哲学的专著。它清晰地回{了(jin)C++Z么会(x)成ؓ(f)今天q个样子而没有变成另外一U语a。作为C++语言的创,Bjarne淋漓致地展CZ(jin)他独到而深ȝ见解。除?jin)广受赞誉的语言Ҏ(gu)外QBjarne没有回避那些引v争议的甚臌拒绝的C++Ҏ(gu),他一一l出?jin)逻辑严密、o(h)Z服的解释。内Ҏ(gu)盖C++的史前时代、带cȝC、C++的设计规则、标准化、库、内存管理、多重ѝ模板等Q对包括异常机制、运行时cd信息和名字空间在内的重要的新Ҏ(gu)都分别q行?jin)深入探讨。每一名C++E序员都应该可以从Bjarne的阐释中加深Ҏ(gu)中这门语a的认识?</P> <P>需要再ơ提醒的是,q两本书知识羃Q信息量极大Q请不要错过Bjarne每一句看似O不经意的话?</P> <P>入门教程 </P> <P>学习(fn)M一门语a都需要一个从入门到精通、从新手到高手@序渐q的q程。不q,对于一个所谓的新手而言Q究竟是一个完完全全的新手Q还是一个熟(zhn)某U别的语a的“新手”,甚至是在某种语言E序设计领域已经颇有建树(wi)的高手,很难一概而论Q不同的C++新手需要不同的入门书籍?</P> <P>Andrew Koenig, Barbara E. Moo, Accelerated C++: Practical Programming by Example <BR>《Accelerated C++中文版》,中国?sh)力出版C?</P> <P>和市(jng)面上大多数C++教程不同Q本书不是从“C++中的C”开始讲解,而是始于地道的C++Ҏ(gu)。从一开始就使用标准库来写程序,随着讲述的逐渐深入Q又一一解释q些标准库组件所依赖的基概念。另外,和其他C++教材不同的是Q这本书以实例拉动语a和标准库的讲解,对后两者的讲解是ؓ(f)?jin)给实例E序提供支持Q而不是像l大多数C++教材那样Q例子只是用作演CaҎ(gu)和标准库用法的辅助工具?</P> <P>作者在C++领域的编E实c(din)教育培训以?qing)技术写作方面都是世界一水准。我喜欢q种大量使用标准库和C++语言原生Ҏ(gu)的清新的写作风根{在q本教材面前Q几乎迄今ؓ(f)止的所有C++教材都黯然失色或昑־q时。尽这本教材也许对于国内的高校教育来说有些前卫Q不q我仍然极力向我的同行们推荐。顺带一提,在Bjarne和我最q的一通信里,他这栯h书:(x)对于有经验的E序员学?fn)C++而言Q这本书可能是世界上最好的一本?</P> <P>Stanley B.Lippman, Josee Lajoie, C++ Primer (3rd Edition) <BR>《C++ Primer (3RD)中文版》,中国?sh)力出版C?</P> <P>q本书的名字多少有点让h误解。尽作者声U这本书是ؓ(f)C++新手而写Q但无论是它的厚度还是讲解的深度都暴露了(jin)gq如此。也许说它是一本“从入门到精通”的C++教程?x)更合适一些。我个h认ؓ(f)它ƈ不适合完全不懂C++的初学??在阅读这本书之前Q你臛_应该先有那么一点C或C++的背景知识,或者至要h一些其他语a的编E经验?</P> <P>管q本书省略了(jin)一些高UC++Ҏ(gu)的讨论Q但仍然可以U得上是q今为止最全面的C++学习(fn)教程。事实上Q如果一名C++初学者能够扎扎实实地d本书q对照《C++ Primer Answer Book》完成全部习(fn)题的话,他的水^肯定可以q入职业C++E序员的行列。我个h认ؓ(f)Q即使你已经拥有?jin)TCPLQ这本书依然有拥有的价|因ؓ(f)在许多方面它比TCPL来得更详l、更易懂?</P> <P>Stanley B. Lippman, Essential C++ <BR>《Essential C++中文版》,华中U技大学出版C?<BR>《Essential C++Q媄(jing)印版Q》,中国?sh)力出版C?</P> <P>可以不太严格地认本书是《C++ Primer》的_版。本书一一讲述?jin)C++中最具代表性的主题Q包括过E式~程、泛型编E、基于对象编E、面向对象编E、模板编E以?qing)异常处理等。Stanley门槛调低到“具有其他语aE序设计l验”的C++新手所能接受的最基本的层ơ,使他们能够迅速开始用C++~程而又免于阅读《C++ Primer》那L(fng)大部头。它以实例引导学?fn),力图使读者在最短的旉内把握C++的精_V?</P> <P>也许换一个h来概qC++~程范型QparadigmQ的Ҏ(gu)面面需要好几百|能说清楚Q但q本书不可思议地做C(jin)q一炏V我个h非常喜欢q种满是技术、简明扼要ƈ且“有话好好说”的书。这本书同样h一个明昄风格Q所有程序例子全部采用标准库lgQ让目一新?</P> <P>以上三本书都不是Z(jin)完完全全的编E新手而写。完全的C++~程新手可以阅读Francis Glassborow的新书(未出版Q:(x)《A Beginners Introduction to Computer Programming : You Can Do It!》。这也是Bjarne的推荐。Francis Glassborow是ACCUdQ多q来他对几乎每一本C++l典名著评头Q他自己的这一本自然会(x)引vC++C的极大兴?</P> <P>高效、健壮编E?</P> <P>两年前我在负责一个省U电(sh)力调度系l项目时~写?jin)一个网关程序,它从SCADApȝ获取?sh)力实时信息。通讯接口采用?jin)不常用的数据库直连方式Q这个网关程序一端连接SQL Server 6.5Q另一端连接Oralce 8.1.6Q。由于实时测点近万,每次全部取h新或插入一遍显然是低效的。我在网关程序里Z(jin)一个内存库Q获取到的数据首先在其中q行比较Q然后决定是否更新物理数据库Q同时还做了(jin)别的更复杂的事情……)(j)Q从而在效率和资源占用两斚w辑ֈ?jin)预期效果?</P> <P>q个E序一直运行得很好Q但在离开现场之后的某一天,pȝ理员打来电(sh)话,说大概因为网l故障等原因Q有时这个网关程序会(x)崩溃??它自己崩掉也qŞ?jin),问题是它q会(x)把Windows 2000 Advanced Server搞成“蓝屏”!坦白地说Q我q从来没看过哪个非蓄意的E序有这个“能耐”。由于当时正忙于另外一个大目Q无法去现场调试Q最后只有凭l验对内存库代码心(j)翼地封装以异常处理代码Q同时也做了(jin)一些别的修改……)(j)。这P虽然没有d解决问题Q但E序l究不再d那么隄?jin)?</P> <P>在这儿讲q么一D花i有什么意思呢Q当初ؓ(f)那个可怕的bug朝思暮x我可不认是一个“花i”)(j)Q我惌的是Q对于Q何Y件而言Q离开强健Q效率也无从谈赗而对于C++E序员来_(d)也许~写一个高效的E序q不难,但要~写一个需? ?24时持箋q行的服务端软g׃是那么容易了(jin)Q需要考虑许多因素Q有时这些因素甚臌q超出C++语言和开发工L(fng)本n。作Z名开发实际项目Y件的E序员,q非得自己钉子才能积累经验,只要我们_虚心(j)Q别人的l验往往都是我们很好的借鉴。鉴于此Q我推荐以下几本书供你选读Q它们可以让你从强健和效率两斚w受益Q当然了(jin)Q它们涵盖的内容q不限于异常处理JQ?</P> <P>Scott Meyers, Effective C++: 50 Specific Ways to Improve Your Programs and Design (2nd Edition) <BR>Scott Meyers, More Effective C++: 35 New Ways to Improve Your Programs and Designs <BR>《Effective C++中文版》,华中U技大学出版C?<BR>《More Effective C++中文版》,中国?sh)力出版C?<BR>《Effective C++Q媄(jing)印版Q》,中国?sh)力出版C?</P> <P>如果说《Effective C++》主要讨论C++中一些相对基的概念和技巧的话,那么《More Effective C++》则着重探讨了(jin)包括异常处理在内的一pd高技术。与前者相比,后者具有两大主要区别:(x)其一Q它包含很多时新的标准C++的内容;W二Q它讨论的主题們֐于“战略化”而非“战术化”,q且讨论得更深入、更d。尤其是对虚析构函数、智能指针、引用计C?qing)代理类Qproxy classeQ等技术和模式的深入程度,让h很难惌是出Cq样的一本小书之中?</P> <P>游刃有余的技术,高超的写作技巧,Scott无疑是世界上最优秀的C++技术作家之一。在z、清晰、易ȝ斚wQ这两本书都卓尔不群。MQScott提供的这85个可以改善编E技术和设计思维的方法,都是中、高UC++E序员必备的技能。我强烈推荐q两本书Q实际上q有一本,E后׃(x)看到Q?</P> <P>Herb Sutter, Exceptional C++: 47 Engineering Puzzles, Programming Problems, and Solutions <BR>Herb Sutter, More Exceptional C++: 40 New Engineering Puzzles, Programming Problems, and Solutions <BR>《Exceptional C++中文版》,中国?sh)力出版C?<BR>《More Exceptional C++中文版》,华中U技大学出版C?</P> <P>你自认ؓ(f)是一名C++语言专家吗?M读ISO C++标准委员?x)秘书长的这两本书再回答。在q两本书中,Herb采用?jin)“问{”的方式指导你学?fn)C++语言Ҏ(gu)。对于每一个专题,Herb首先合理地设惛_你的疑问和困惑,接着又猜出你十有八?ji)是错误的解{,然后l你以指点ƈ提出最佌x案,最后还归纳?gu)决类似问题的普适性原则?</P> <P>q两本书是典型的qC++语言l节的著作,很薄Q但内容密集Q远q超qScott的那两本书,读v来很费脑{??我个为它们要比Scott的书难懂得多。若要研?fn)这薄薄的两本书所包含的知识,臛_需要花Ҏ(gu)月的旉Q(在Scott的荐序中Q他坦陈不止一ơ陷入GotW问题的陷阱,你应该知道这意味着什么)(j)对于语言l节的深I有什么好处呢Q尽在大多数情况下Q我们不必关?j)C++代码q后的动作,然而当我们不得不关?j)时Q这两本书可以ؓ(f)我们提供很好的线索,因ؓ(f)它们揭示?jin)C++语言中微妙而又臛_重要的东ѝ?</P> <P>Stephen C. Dewhurst, C++ Gotchas: Avoiding Common Problems in Coding and Design <BR>《C++E序设计陷阱》,中国青年出版C?</P> <P>Stephen的理论素d实践l验注定q是一本值得一ȝ好书。Stephen曄是贝?dng)实验室中第一批C++使用者。他已经使用C++成功解决?jin)包括编译器、证怺易、电(sh)子商务以?qing)嵌入式pȝ{领域中的问题。本书汇集了(jin)作者来自开发一U的99条编E真知灼见,z?zhn)它们Q你可以避免几乎所有常见的C++设计和编E问题?</P> <P>我甚臌为,对于C++~程菜鸟而言Q阅读这本书?x)比阅读Scott和Herb的书更能L而立竿见影地获得更大的提高。我个h很喜Ƣ这本书的写作风??Stephen的许多观点看似极端却无可辩驳。当然了(jin)Q这U自信(以及(qing)冷幽默)(j)来自于作者深厚的技术素养,而非自大的偏执?</P> <P>除了(jin)上面推荐的书c外QDov Bulka?David Mayhew合著的《Efficient C++: Performance Programming Techniques》(《提高C++性能的编E技术》,清华大学出版C)(j)也值得一看。这本超薄小书聚焦于高性能C++应用E序开发。两位作者都是IBM软g专家Q都工作于对性能要求极高的系l构建领域,本书是他们的l验之谈。也有h不喜Ƣ这本书Q因为它׃(jin)不少的篇q讲q和C++无关的东西,我却恰恰因ؓ(f)q一点而对q本书生好感,正是q些东西让我开阔了(jin)眼界?</P> <P>模板和泛型编E?</P> <P>模板和基于模板的泛型~程无疑是当今发展最z跃的C++E序设计技术。模板的W一个革命性的应用是STLQ它?yu)模板技术在泛型容器和算法领域的q用展现得淋漓尽_(d)而Boost、Loki{现代程序库则将模板技术的潜能不断发挥到极致。在模板和泛型编E领域,我推荐以下两本重量著作Q?</P> <P>David Vandevoorde, Nicolai M. Josuttis, C++ Templates: The Complete Guide <BR>《C++ Templates全览Q繁体版Q》,台湾峰资讯股䆾有限公司 <BR>《C++ Templates全览Q简体版Q》,人民邮电(sh)出版C?</P> <P>有一U老套的赞一本书的手法,大致是“没有看q这本书Q你怎么怎么地”,q里面往往夸张的成分居多。不q,倘若说“没有看q《C++ Templates: The Complete Guide》,你就不可能精通C++模板~程”,那么q个论断对于世界上绝大多数C++E序员来说是成立的?</P> <P>q本书填补了(jin)C++模板书籍领域由来已久的空白。此前,上有《Modern C++ Design》这L(fng)专注于模杉KU编E技术和泛型模式的著作,下有《The C++ Standard Library》这L(fng)针对特定模板框架和组件的使用指南。然而,假如Ҏ(gu)板机制缺乏深入的理解Q你很䏀上下”自如。鉴于此Q我向每一位(f)望透彻理解C++模板技术的朋友推荐q本书?</P> <P>q本书在内地、台湑֐有一个译本,但出自不同的译者之手。当你看到这文章时Q两个译本应该都已经上市(jng)Q对于读者来说当然也多?jin)一U选择。侯捷先生个人网站上开放了(jin)J体译本大部分章节,不妨先睹为快?</P> <P>Andrei Alexandrescu, Modern C++ Design: Generic Programming and Design Patterns Applied <BR>《C++设计新思维Q泛型编E与设计模式之应用》,华中U技大学出版C?<BR>《C++设计新思维Q媄(jing)印版Q》,中国?sh)力出版C?</P> <P>你自认ؓ(f)是C++模板~程高手吗?L(fng)q这本书再回{J q是一本出自天才之手o(h)人敬畏的C。泛型模式,无限延你的视野Q以挑战Q何一名C++E序员的思维极限?</P> <P>q本书共分ؓ(f)两大部分Q第一部分讨论?LokiE序库采用的基础技术以?qing)一些高U语aҎ(gu),包括Z{略的类设计、模板局部特化、编译期断言、Typelist以及(qing)型对象分配技术等。第二部分则着重介l了(jin)Loki中的重要lg和泛型模式技术,包括泛化仿函敎ͼGeneralization FunctorQ、单ӞSingletonQ、智能指针、对象工厂(Object FactoryQ、抽象工厂(Abstract FactoryQ、访问者(VisitorQ以?qing)多?gu)QMultimethodsQ等。每一U技术都让h大开眼界Q叹止?</P> <P>在C++的学?fn)方面,q犹不及(qing)往往成了(jin)不求甚解的借口。然而,面向对象qC++的全部,模板和泛型编E亦占半壁江山。对于“严肃”的C++E序员而言Q及(qing)时跟q这Ҏ(gu)l例证的成功技术,不失为明Z举?</P> <P>l语 </P> <P>q些著作是如此大名鼎鼎,也许Ҏ(gu)不缺我一个推荐。然而,U늄C++E序员队伍的发展壮大速度不像其他更时髦的语言那样q速,ChqL多于旧h出。除?jin)热忱地Ƣ迎ChQ我个h认ؓ(f)C(jin)对C++书籍q行“盘点”的时候了(jin)Qƈ且希望这L(fng)“盘点”有益于感兴的读者。请保持耐心(j)和宽厚。在下篇中,我将l箋介绍标准库、网l编E以?qing)其他方面的C++好书。有好书怼Q这个冬天不?x)冷?</P> <P> </P><img src ="http://www.shnenglu.com/snake/aggbug/1180.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/snake/" target="_blank">snake</a> 2005-11-18 03:21 <a href="http://www.shnenglu.com/snake/archive/2005/11/18/1180.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于d数main()http://www.shnenglu.com/snake/archive/2005/11/18/1179.htmlsnakesnakeThu, 17 Nov 2005 17:00:00 GMThttp://www.shnenglu.com/snake/archive/2005/11/18/1179.htmlhttp://www.shnenglu.com/snake/comments/1179.htmlhttp://www.shnenglu.com/snake/archive/2005/11/18/1179.html#Feedback3http://www.shnenglu.com/snake/comments/commentRss/1179.htmlhttp://www.shnenglu.com/snake/services/trackbacks/1179.html?fn)惯上很多教材中都把d数写成如“void main()”的形式Q这U写法上是说明主函数是没有Q何反回值的Q但更脓(chung)切的写法应该为“int main()”,因ؓ(f)在C++中如果主函数中没有“return”语句,那编译器׃(x)自动在主函数最后加上“return 0”?/P>

snake 2005-11-18 01:00 发表评论
]]>
新的头文件表C和名称I间http://www.shnenglu.com/snake/archive/2005/11/17/1175.htmlsnakesnakeThu, 17 Nov 2005 10:14:00 GMThttp://www.shnenglu.com/snake/archive/2005/11/17/1175.htmlhttp://www.shnenglu.com/snake/comments/1175.htmlhttp://www.shnenglu.com/snake/archive/2005/11/17/1175.html#Feedback3http://www.shnenglu.com/snake/comments/commentRss/1175.htmlhttp://www.shnenglu.com/snake/services/trackbacks/1175.html        刚开始学?fn)C++的时?cin跟cout都是包含在头文giostream.h中的Q在新的C++中只输入iostream可以了(jin)Q不q在之后main()函数内要加入名称I间Q反之在相对较老的~译器中头文件名仍要?hQ空间名UC要省厅R?BR>        关于I间名称Q这是我手上q本书中讲的新知识,先叫新知识吧Q因为我以前是不知道的,其格式ؓ(f)Qusing namespace ***Qusing叫做~译指o(h)Q名U空间支持是C++中比较新的一个特性,是ؓ(f)?jin)让已有的程序组合v来更单而设计的Q如两个已经装好了(jin)的品,且两个都包含一个名为word( )的函敎ͼq样在用word( )函数Ӟ~译器就不知道应该去使用哪一个版本中的,因此我们可以使用名称I间Q将abc公司的品放C个名为abc的空间中去,def公司的品放C个名为def的公司去Q这样abc公司的就叫abc::wors( ),def公司的就叫def::word( ),应用如下Q?BR>                  abc::wors("go dancing?");
                  def::word("a fish named desirs");



snake 2005-11-17 18:14 发表评论
]]>
[转蝲]_NC++的定?http://www.shnenglu.com/snake/archive/2005/11/17/1174.htmlsnakesnakeThu, 17 Nov 2005 09:40:00 GMThttp://www.shnenglu.com/snake/archive/2005/11/17/1174.htmlhttp://www.shnenglu.com/snake/comments/1174.htmlhttp://www.shnenglu.com/snake/archive/2005/11/17/1174.html#Feedback5http://www.shnenglu.com/snake/comments/commentRss/1174.htmlhttp://www.shnenglu.com/snake/services/trackbacks/1174.html今日看到大把的同学的历上都写着“_Nc++”,”_Nxxxx”,其实他们可能只是?x)写个helloworld,知道class是个关键字而已?其它的我都不是太?唯独c++研究q些时日?自己?j)中的精通ؓ(f)何也早有定义:
1)知道所有关键字的含?q个是最基本?有很多很用的也必须知道..比如auto,mutable,explicit,volatile...
1.5)通读q一?ISO C++标准
2)STL的用和基本实现原理.
3)《Effective C++?《More Effective C++?..之类的经验手册型书籍熟读3本以上,其中大部分条ƾ要烂熟于胸
4)boost库的整体框架要了(jin)解,清楚其中某些实现的超UBT的库不能被某些编译器~译的原因。还要清楚哪些库会(x)被iso c++ 收录...用到某些功能的时候会(x)不由自主的想?#8220;boost 中有q个功能?”l果׃比自己手写还要多的时间去使用boost.
4)看过Moden C++ Design,loki的实现原理要清楚..当然也要知道loki是干什么的...
5)林锐的《高质量C++~程指南》后面的?fn)题能得?0分以?记得是第一ơ做Q以后补的不!)?br>6)C++中的U程安全模型是怎样的?br>7)C++中的字符串处理库Q包括C++对unicode,多种语言~码的支持?br>8)预编译命令都知道是用来干什么的和常见的使用?fn)?..
9)qx最常用的一个编译器的所有编译选项熟记于心(j)Q以?qing)他和ISO C++定义的编译器的差?br>10)q条凑数...不管怎么P也要?x)用gcc...q样保证?jin)在每个q_下面 都可以编译个helloworld
按上面的标准查看下自?..q是要l努力啊...

snake 2005-11-17 17:40 发表评论
]]>
ݺۺϾþAVһ| þùһƬѹۿ| պʮ˽һþ| ƷŮþþ| ŷƷ˿þþĻ| þù׽| VۺVŷþ| ƷþþþþþĻ| avɫۺϾþavɫۺ| Ʒþþþþ| þþ| ˾þ91| һþۺ³³| 99ȳ˾ƷȾþ669| þù| þþƷƷapp| ޾Ʒþþþþ| 9þ9þþƷ| ԭۺϾþô| ƷۺϾþõһҳ| ˳˳ۺþþ| پþþƷþ| ŷۺϾþþ| þþۺϾɫۺϾ| þþþþþž99Ʒ| ھƷþþþӰԺ˾| þùƷһ| ձǿƬþþþþAAA| һۺϾþù| þ99ۺϾƷҳ| ӰԺ˾þ| VۺVŷþ| þþƷAV| Ů޾Ʒþþۺ| ٸþþþþñŪ߳| AAƬѿƵþ| ɫۺϾþþþ| Ƶþ| þþƷav٤| þ99Ʒ鶹ѿ| þóѲ|