C++Primer(英文版)(第4版)

出版時(shí)間:2006-11  出版社:人民郵電出版社  作者:Stanley B.Lippman,Josée LaJoie,Barbara E.Moo  頁(yè)數(shù):885  
Tag標(biāo)簽:無(wú)  

內(nèi)容概要

  “在遇到無(wú)法解決的問(wèn)題時(shí),我總會(huì)求助于C++ Primer一書(shū)。”——Bruce·Eckel,“編程思想”系列圖書(shū)作者  “眾所周知, C++ Primer是學(xué)習(xí)C++最理想的參考書(shū)之一,適用于各種水平的C++程序員。第4版不但保持了這種傳統(tǒng),而且有了很大改善。”——STEVE?VINOSKI,IONA科技公司首席工程師,CORBA與C++權(quán)威?! ?ldquo;《C++Primer(英文版)(第4版)》真正揭示了C++這一大型、復(fù)雜語(yǔ)言的本質(zhì)。”——JUSTIN?SHAW,Aerospace公司電子程序部技術(shù)處資深成員  “(本書(shū))不但使初學(xué)者迅速入門(mén),而且是用優(yōu)秀的編程實(shí)踐引導(dǎo)他們?nèi)腴T(mén)。”——NEVIN?LIBER,資深工程師(自1988年起一直是C++開(kāi)發(fā)者)  C++誕生20年后,因其強(qiáng)大的功能、廣泛的適用性和極高的效率,已經(jīng)成為無(wú)庸置疑的主流編程語(yǔ)言。但是C++語(yǔ)言也不得不面對(duì)這樣的挑戰(zhàn):其博大精深不僅令初學(xué)者望而生畏,而且即使是許多富于經(jīng)驗(yàn)的老手也很難全面掌握,更有不少C++程序員一直背負(fù)著C語(yǔ)言的歷史包袱,常常落入各種微妙難解的安全和性能陷阱。如何使現(xiàn)代C++理念深入人心,使C++更加容易學(xué)習(xí)和使用,已經(jīng)成為眾所矚目的焦點(diǎn)?!  禖++Primer(英文版)(第4版)》是久負(fù)盛名的C++經(jīng)典教程,已經(jīng)幫助全球無(wú)數(shù)程序員學(xué)會(huì)了C++。這一全新版本進(jìn)行了徹底的修訂,章節(jié)內(nèi)容和編排都經(jīng)過(guò)了重新組織,既顯著改善了可讀性,又充分體現(xiàn)了C++語(yǔ)言的最新進(jìn)展和當(dāng)前的業(yè)界最佳實(shí)踐?!禖++Primer》(英文版)(第4版)(圖靈原版計(jì)算機(jī)科學(xué)系列)是C++大師Stan?B?Lippman豐富的實(shí)踐經(jīng)驗(yàn)和C++標(biāo)準(zhǔn)委員會(huì)原負(fù)責(zé)人Josée·Lajoie對(duì)C++標(biāo)準(zhǔn)深入理解的完美結(jié)合。新版更加入了C++先驅(qū)Barbara?E?Moo在C++教學(xué)方面的真知灼見(jiàn)。對(duì)C++基本概念和技術(shù)全面而且權(quán)威的闡述,對(duì)現(xiàn)代C++編程風(fēng)格的強(qiáng)調(diào),使本書(shū)不僅依然是初學(xué)者的最佳C++指南,而且即使對(duì)于中高級(jí)程序員,本書(shū)也是不可或缺的參考書(shū)。

作者簡(jiǎn)介

  Stanley B. Lippman,目前是微軟公司 Visual C++ 團(tuán)隊(duì)的架構(gòu)師。他從1984年開(kāi)始在貝爾實(shí)驗(yàn)室與C++的設(shè)計(jì)者Bjarne Stroustrup一起從事C++的設(shè)計(jì)與開(kāi)發(fā)。又先后在迪士尼和夢(mèng)工廠從事動(dòng)畫(huà)制作,還擔(dān)任過(guò)JPL的高級(jí)顧問(wèn)。他還著有Inside the C++ Object Model。

書(shū)籍目錄

Chapter 1 Getting Started1.1 Writing a Simple C++Program1.1.1 Compiling and Executing Our Program1.2 A First Lookat Input/Output1.2.1 Standard Input and Output Objects1.2.2 A Program that Uses the IO Library1.3 A Word About Comments1.4 Control Structures1.4.1 The while Statement1.4.2 The for Statement1.4.3 The if Statement1.4.4 Reading an Unknown Number of Inputs1.5 Introducing Classes1.5.1 The Sales_item Class1.5.2 A First Looka tMember Functions1.6 The C++ProgramChapter SummaryDefined TermsPart I The BasicsChapter 2 Variables and Basic Types2.1 Primitive Built-in Types2.1.1 Integral Types2.1.2 Floating-Point Types2.2 Literal Constants2.3 Variables2.3.1 What Is a Variable?2.3.2 The Name of a Variable2.3.3 Defining Objects2.3.4 Variable Initialization Rules2.3.5 Declarations and Definitions2.3.6 Scope of a Name2.3.7 Define Variables Where They Are Used2.4 const Qualifier2.5 References2.6 Typedef Names2.7 Enumerations2.8 Class Types2.9 Writing Our Own Header Files2.9.1 Designing Our Own Headers2.9.2 A Brief Introduction to the PreprocessorChapter SummaryDefined TermsChapter 3 Library Types3.1 Namespace using Declarations3.2 Library stringType3.2.1 Defining and Initializing strings3.2.2 Reading and Writing strings3.2.3 Operations on strings3.2.4 Dealing with the Characters of a string3.3 Library vector Type3.3.1 Defining and Initializing vectors.3.3.2 Operations on vectors3.4 Introducing Iterators3.4.1 Iterator Arithmetic3.5 Library bitset Type3.5.1 Defining and Initializing bitsets3.5.2 Operations on bitsetsChapter SummaryDefined TermsChapter 4 Arrays and Pointers4.1 Arrays4.1.1 Defining and Initializing Arrays4.1.2 Operations on Arrays4.2 Introducing Pointers4.2.1 What Is aPointer?4.2.2 Defining and Initializing Pointers4.2.3 Operationson Pointers4.2.4 Using Pointers to Access Array Elements4.2.5 Pointers and the const Qualifier4.3 C-Style Character Strings4.3.1 Dynamically Allocating Arrays4.3.2 Interfacing to Older Code4.4 Multidimensioned Arrays4.4.1 Pointers and Multidimensioned ArraysChapter SummaryDefined TermsChapter 5 Expressions5.1 Arithmetic Operators5.2 Relational and Logical Operators5.3 The Bitwise Operators5.3.1 Using bitset Objectsor Integral Values5.3.2 Using the Shift Operators for IO5.4 Assignment Operators5.4.1 Assignment Is Right Associative5.4.2 Assignment Has Low Precedence5.4.3 Compound Assignment Operators5.5 Increment and Decrement Operators5.6 The Arrow Operator5.7 The Conditional Operator5.8 The size of Operator5.9 Comma Operator5.10 Evaluating Compound Expressions5.10.1 Precedence5.10.2 Associativity5.10.3 Order of Evaluation5.11 The new and delete Expressions5.12 Type Conversions5.12.1 When Implicit Type Conversions Occur5.12.2 The Arithmetic Conversions5.12.3 Other Implicit Conversions5.12.4 Explicit Conversions5.12.5 When Casts Might Be Useful5.12.6 Named Casts5.12.7 Old-StyleCastsChapter SummaryDefined TermsChapter 6 Statements6.1 Simple Statements6.2 Declaration Statements6.3 Compound Statements (Blocks)6.4 Statement Scope6.5 The if Statement6.5.1 The if Statement else Branch6.6 The switch Statement6.6.1 Using a switch6.6.2 Control Flow within a switch6.6.3 The default Label6.6.4 switch Expression and CaseLabels6.6.5 Variable Definitions inside a switch6.7 The while Statement6.8 The forLoop Statement6.8.1 Omitting Parts of the for Header6.8.2 Multiple Definitions in the for Header6.9 The do while Statement6.10 The break Statement6.11 The continue Statement6.12 The goto Statement6.13 try Blocks and Exception Handling6.13.1 A throw Expression6.13.2 The try Block6.13.3 Standard Exceptions6.14 Using the Preprocessor for DebuggingChapter SummaryDefined TermsChapter 7 FunctionsChapter 8 The IO LibraryPart II Containers and AlgorithmsChapter 9 Sequential ContainersChapter 10 Associative ContainersChapter 11 Generic AlgorithmsPart III Classes and Data AbstractionChapter 12 ClassesChapter 13 Copy ControlChapter 14 Overloaded Operations and ConversionsPart Ⅳ Object-Oriented and Generic ProgrammingChapter 15 Object-Oriented ProgrammingChapter 16 Templates and Generic ProgrammingPart Ⅴ Advanced TopicsChapter 17 Tools for Large ProgramsChapter 18 Specialized Tools and TechniquesAppendixA The LibraryIndex

圖書(shū)封面

圖書(shū)標(biāo)簽Tags

無(wú)

評(píng)論、評(píng)分、閱讀與下載


    C++Primer(英文版)(第4版) PDF格式下載


用戶評(píng)論 (總計(jì)48條)

 
 

  •   書(shū)得質(zhì)量很好,內(nèi)容很豐富
  •   印刷,質(zhì)量還好,價(jià)格也適中,滿意。
  •   看看原汁原味的
  •   經(jīng)典不需要解釋
  •     說(shuō)起對(duì)編程的喜愛(ài)還得從C++開(kāi)始……
      還記得大一學(xué)習(xí)C++時(shí)的激情:看書(shū),理解,敲代碼;看書(shū),理解,敲代碼……可能我已經(jīng)數(shù)不清當(dāng)時(shí)死了多少腦細(xì)胞,呵呵
      
      不過(guò),大一學(xué)c++時(shí),學(xué)院統(tǒng)一使用的是清華出版社的一本書(shū),感覺(jué)不咋滴,所以當(dāng)時(shí)學(xué)的云里霧里——但,最后,在網(wǎng)上一查,看見(jiàn)許多C++前輩都力薦《C++ Primer》這本書(shū),所以又決定品讀這本大師級(jí)的書(shū)籍,雖然很厚,但還算是讀完了
      
      雖然,不敢說(shuō)自己對(duì)C++的認(rèn)識(shí)有多前衛(wèi),但是,我可以誠(chéng)懇地講:這本書(shū)讓我對(duì)C++的確增長(zhǎng)了不少見(jiàn)識(shí)——例如:常成員函數(shù)、typeid(t).name()查看t的類(lèi)型名稱(chēng)、運(yùn)算符重載竟然可以那么強(qiáng)大==??傊?,這本書(shū)對(duì)于C++的講解算是非常全面,可以讓你從入門(mén)級(jí)別升級(jí)到中級(jí)或者更高的級(jí)別
      
      因此,如果你是喜歡C++的初學(xué)者,且向真正了解編程之道,那么請(qǐng)學(xué)習(xí)C++,細(xì)細(xì)品味這本書(shū)吧,它會(huì)給你帶來(lái)意想不到的收獲和進(jìn)步……
  •     還沒(méi)看完
      這書(shū)還是針對(duì)有一定基礎(chǔ)的人看的
      很多內(nèi)容比較糙么 沒(méi)有想象的好 講的不細(xì)
       不過(guò)還是比較實(shí)用的 堅(jiān)持看完好了
      初學(xué)的還是推薦C++Primer Plus
      一些國(guó)內(nèi)的c++語(yǔ)言教程
      
  •     這本書(shū)寫(xiě)的不錯(cuò),但對(duì)于C++本身就不敢茍同了。與其說(shuō)C++這門(mén)語(yǔ)言是設(shè)計(jì)出來(lái)的,不如說(shuō)是“用”出來(lái)的。
      
      C語(yǔ)言用著用著覺(jué)得抽象性不夠,那就加入面向?qū)ο蟮臇|西吧;用著用著怎么突然出現(xiàn)二義性了,向左還是向右呢?不如就規(guī)定統(tǒng)一向左吧!再用著用著發(fā)現(xiàn)好像漏了什么東西,嗯,需要引入個(gè)“友元”的概念。然后為了語(yǔ)言整體不至于太混亂,看上去像那么回事,就組織一批學(xué)者對(duì)其進(jìn)行“重構(gòu)”,不斷修正和提出所謂的標(biāo)準(zhǔn),使其能自圓其說(shuō)。
      
      C++設(shè)計(jì)中反復(fù)在強(qiáng)調(diào)要站在“用戶”的角度考慮,無(wú)論是類(lèi)用戶,而是最終用戶,都要盡量做到“隱藏實(shí)現(xiàn),提供接口”。具有諷刺意味的是,這一點(diǎn)它連自己都沒(méi)有做到,甚至可以充當(dāng)反面教材。對(duì)于讀這本書(shū)的,C++這門(mén)語(yǔ)言的“用戶”,編譯器實(shí)現(xiàn)的細(xì)節(jié)貫穿全書(shū)。
      
      不過(guò)也罷,畢竟當(dāng)一個(gè)人腦子里裝著要兼容C這么一個(gè)大負(fù)擔(dān)時(shí),能期望他作出多么優(yōu)秀的設(shè)計(jì)呢?
  •     作為入門(mén)書(shū)所有知識(shí)點(diǎn)幾乎還都覆蓋到了, 但是略顯一掃而過(guò), 不夠細(xì)致. 相比之下另一本入門(mén)書(shū)(Head First C)做得更好, (寫(xiě)作手法)從原理到用法講解的透徹清晰. 所以此書(shū)作為入門(mén)書(shū)其實(shí)是略顯"譚浩強(qiáng)"類(lèi).
      
      但是作為參考書(shū), 還是挺好的. 昔日還可以隨時(shí)翻翻, 但在現(xiàn)在各種online msdn, man page下, 多少有些尷尬了. 4星給紙質(zhì)書(shū)時(shí)代的經(jīng)典.
  •     這是一本經(jīng)典,但是在我多次讀過(guò)之后,感覺(jué)這本書(shū)更應(yīng)該是一本給已經(jīng)有一些c或者c++經(jīng)驗(yàn)的人的工具書(shū),而不適合初學(xué)者。
      本書(shū)的前面部分,也就是基礎(chǔ)語(yǔ)言和容器、泛型算法部分相當(dāng)?shù)脑敿?xì),對(duì)于各種細(xì)節(jié)做到了極致,初學(xué)者可能會(huì)受益匪淺。
      但是本書(shū)一旦到了類(lèi)和面向?qū)ο缶幊滩糠种?,?duì)于初學(xué)者、尤其是沒(méi)有任何編程經(jīng)驗(yàn)的人來(lái)說(shuō),就全靠個(gè)人領(lǐng)悟與天賦了,但是對(duì)于有些基礎(chǔ)的人來(lái)說(shuō),則可以從中學(xué)到很多速成類(lèi)c++教材的知識(shí)。
      這是一本經(jīng)典,但是初學(xué)者慎讀,最好能和其他的書(shū)比較著讀。
  •      這是非常適合初學(xué)者的一本書(shū),學(xué)習(xí)C++之前就知道這本書(shū)堪稱(chēng)是C++圣經(jīng),讀了之后發(fā)現(xiàn)真的是名不虛傳。
       我以前看過(guò)的一些國(guó)內(nèi)的C++教科書(shū),都是使用基于字符數(shù)組指針和動(dòng)態(tài)內(nèi)存管理的程序設(shè)計(jì)技術(shù)來(lái)講的,感覺(jué)經(jīng)常會(huì)陷入到一些程序細(xì)節(jié)中,沒(méi)看幾章就會(huì)覺(jué)得有很強(qiáng)的挫敗感而導(dǎo)致不想繼續(xù)了,但是由于英文不好,一直對(duì)看這本書(shū)沒(méi)有太大信心,經(jīng)過(guò)很多人的推薦,最終還是鼓起勇氣買(mǎi)了一本來(lái)看,很慶幸沒(méi)有自己想象中的那么難。
       我覺(jué)得這本書(shū)的特別之處在于兩點(diǎn),一是引入標(biāo)準(zhǔn)庫(kù),讓學(xué)習(xí)編寫(xiě)的過(guò)程變得簡(jiǎn)單很多,而且可以順便學(xué)習(xí)一下全新的C++11標(biāo)準(zhǔn);二是這本書(shū)在邊欄設(shè)置了一些圖標(biāo),用來(lái)對(duì)基礎(chǔ)內(nèi)容(核心)、高級(jí)主題(可跳過(guò)或掃一眼)和復(fù)雜概念(仔細(xì)徹底理解)加以區(qū)別,個(gè)人感覺(jué)可以引導(dǎo)不同程度的人更有效率的讀這本書(shū)。
       要說(shuō)缺點(diǎn)的話,個(gè)人覺(jué)得最大缺點(diǎn)還是它是英文版,讀起來(lái)很慢,英文不好是個(gè)硬傷,不過(guò)聽(tīng)說(shuō)7月份將要出第五版的中文版了,很是期待~~
  •      這本書(shū)我詳詳細(xì)細(xì)的讀過(guò)兩邊,每次讀的收獲都不一樣,第一遍讀的時(shí)候沒(méi)讀完,最后一本部分沒(méi)讀下去,畢竟一口氣看完還是需要很大的勇氣的,后來(lái)總是感覺(jué)有點(diǎn)遺憾,就每天下班的時(shí)候讀一下,用了不到一周的時(shí)間詳細(xì)的讀了一遍,個(gè)人感覺(jué)如果有時(shí)間可以詳細(xì)的讀一遍的(時(shí)間都是擠出來(lái)的),不必都記住,只需要在用到相關(guān)知識(shí)的時(shí)候能到對(duì)應(yīng)的地方找到參考的知識(shí)點(diǎn)就可以了,這本書(shū)相比C++程序設(shè)計(jì)語(yǔ)言還是容易理解下,還是建議讀一下這本書(shū)!
  •     
      
      我在網(wǎng)上看到好多人說(shuō)這個(gè)書(shū)不適合初學(xué)者,而我就是個(gè)初學(xué)者,我感覺(jué)我們不能完全靠書(shū),書(shū)只是個(gè)目錄和簡(jiǎn)要的說(shuō)明,告訴你有這么多知識(shí)點(diǎn),好的書(shū)在章節(jié)目錄后還有小章節(jié)目錄,好的初學(xué)者的書(shū)就是這樣的小章節(jié)列的很全面
      
      再者這個(gè)書(shū)可能有些東西初學(xué)者可能不適應(yīng),以后工作必須要有自學(xué)的能力,這個(gè)書(shū)好多幫你理解,但是沒(méi)有完整的代碼例子,可能官方有代碼,但是在看書(shū)的時(shí)候卻沒(méi)有完整代碼幫你理解,你可以暫時(shí)看不懂,但是你卻可以上網(wǎng)查找相關(guān)知識(shí)點(diǎn)來(lái)參考其他有經(jīng)驗(yàn)的程序員的帖子來(lái)幫助你理解這個(gè)知識(shí)點(diǎn),然后再來(lái)理解書(shū)上說(shuō)明可能就清楚了,所以你要利用很好的泛濫的網(wǎng)絡(luò)資源,不能依賴(lài)書(shū)把每個(gè)知識(shí)點(diǎn)都講到,再著一本書(shū)就是一個(gè)人的講話方式,如果你不習(xí)慣,但是你完全可以利用網(wǎng)絡(luò)資源來(lái)傾聽(tīng)另一種你習(xí)慣的傾聽(tīng)方式,而且一個(gè)多年的程序員也不一定能很全面掌握,重在實(shí)踐。
      
      我推薦你學(xué)習(xí)c++把這本書(shū)作為入門(mén),也練練你的耐心,這些都是以后你工作中需要的基本素質(zhì)。
      
      我學(xué)習(xí)的經(jīng)歷:http://blog.csdn.net/jianguo_liao19840726/article/category/1214731
      
      
  •     首先很厚 900 多頁(yè),包含交叉索引,
      原版的書(shū)紙的質(zhì)量不用說(shuō)了。
      
      基本覆蓋了 0x11的內(nèi)容, 風(fēng)格例子都沒(méi)有太大變化,加入了一個(gè)圖標(biāo)機(jī)制,難以理解的部分都加了圖片,對(duì)于初學(xué)者可以略過(guò),對(duì)于有經(jīng)驗(yàn)的可以著重理解。隨書(shū)還附贈(zèng)了45天免費(fèi)的在線電子版。safari在線書(shū)店。
      
      
  •     第五版出來(lái)了,已經(jīng)在amazon下單,c++11的東西是這次更新的主題
      8月6號(hào)就出來(lái),昨天去查發(fā)現(xiàn)已經(jīng)出了一段時(shí)間了,很不錯(cuò)
      靜待到貨
      BTW:20英鎊的價(jià)格確實(shí)也很給力,比預(yù)定的價(jià)格還低,看來(lái)等等還是劃算的 這本書(shū)從來(lái)都是給有基礎(chǔ)的人看得,完全沒(méi)基礎(chǔ)的還是找點(diǎn)別的吧
  •     這本書(shū)的思路往復(fù)跳躍,作者尤其喜歡吹牛逼,至于“久負(fù)盛名”的原因,見(jiàn)標(biāo)題。
      字?jǐn)?shù)補(bǔ)丁
      字?jǐn)?shù)補(bǔ)丁
      字?jǐn)?shù)補(bǔ)丁
      字?jǐn)?shù)補(bǔ)丁
      字?jǐn)?shù)補(bǔ)丁
      字?jǐn)?shù)補(bǔ)丁
      字?jǐn)?shù)補(bǔ)丁
      字?jǐn)?shù)補(bǔ)丁
      字?jǐn)?shù)補(bǔ)丁
      字?jǐn)?shù)補(bǔ)丁
      字?jǐn)?shù)補(bǔ)丁
      字?jǐn)?shù)補(bǔ)丁
      字?jǐn)?shù)補(bǔ)丁
      字?jǐn)?shù)補(bǔ)丁
      字?jǐn)?shù)補(bǔ)丁
      字?jǐn)?shù)補(bǔ)丁
      字?jǐn)?shù)補(bǔ)丁
      字?jǐn)?shù)補(bǔ)丁
  •     書(shū)的內(nèi)容質(zhì)量不用我再多說(shuō)了,經(jīng)典中的經(jīng)典。
      我只從閱讀的方面談?wù)勛约旱目捶?,?jīng)過(guò)中英對(duì)比以后,發(fā)現(xiàn)譯者們只是將書(shū)的內(nèi)容原原本本的翻譯成了中文,卻沒(méi)在中文閱讀的習(xí)慣上多加雕琢,看英文版的感覺(jué)挺流暢,行云流水,但再看翻譯后的,總顯不足,有點(diǎn)水土不符。本身C++就有難度,此書(shū)又是細(xì)節(jié)較多,翻譯再有問(wèn)題,這本身就給讀者增加了無(wú)形的障礙。總體感覺(jué),不如侯捷老師翻譯的水平高。
      
      建議中英比較著來(lái)看,有能力的就看原版的吧。
  •     這本書(shū)有很多typos,讓人抓狂?。。。。。。?!
      
      下面好像是官方的勘誤表,好久沒(méi)更新了,只糾正了部分錯(cuò)誤
      http://ptgmedia.pearsoncmg.com/images/9780201721485/Errata/Lippman_0201721481_Errata.html
      
      這個(gè)是某網(wǎng)友找到的錯(cuò)誤
      http://wwliu.is-programmer.com/posts/22784
      
      希望大家能把自己找到的錯(cuò)誤都列出來(lái)...
  •     這是本非常經(jīng)典的C++書(shū)籍,系統(tǒng)全面地介紹了C++語(yǔ)言。本書(shū)有一千多頁(yè),可以看成是學(xué)習(xí)C++的百科全書(shū)。市面上沒(méi)有哪本其他書(shū)籍比本書(shū)論述得更廣泛了,幾乎所有的C++知識(shí)點(diǎn)本書(shū)都有論述而且寫(xiě)得還不錯(cuò)。因?yàn)檫@點(diǎn),這本書(shū)值得每一位C++程序員擁有。
      
      我是通過(guò)兩本書(shū)籍來(lái)學(xué)習(xí)C++的,一本是本書(shū),還有一本是《Thinking in C++》卷1。與TIC相比,本書(shū)勝內(nèi)容的廣度與深度;TIC勝在易讀性與OOP編程思想。這兩本書(shū)都寫(xiě)得很不錯(cuò)!
      
      本書(shū)不應(yīng)是你學(xué)習(xí)C++的第一本書(shū)籍(推薦TIC卷1),因?yàn)楸緯?shū)常用程序片段、大程序來(lái)講解C++,而不是通過(guò)短小而完整的程序來(lái)實(shí)例演示的。我想初學(xué)者還是喜歡能實(shí)際動(dòng)手,編寫(xiě)、運(yùn)行能看到結(jié)果小程序吧。但如果你想完整系統(tǒng)地學(xué)習(xí)一遍C++的話,本書(shū)仍然不可錯(cuò)過(guò)。
  •     很不適合初學(xué)者的primer;
      我認(rèn)為很不適合初學(xué)者的primer,即使他的大師寫(xiě)的
      很早就陷入語(yǔ)法和細(xì)節(jié),讓初學(xué)者陷入無(wú)盡的要點(diǎn);
      現(xiàn)在看了很多書(shū)后,想來(lái),自己也走了好過(guò)彎路;
      
      
      
      
      
      
      
      
      
      
  •   nice 正在看這本書(shū)呢。好多問(wèn)題不太會(huì)。
  •   P215 關(guān)于常量引用的講解
    下面給出了一個(gè)不好的例子,并給出解決方案
    “如果實(shí)在不能修改find_char 就在is_sentence內(nèi)部定義一個(gè)string類(lèi)型的變量,令其未s的副本,然后把這個(gè)string對(duì)象傳遞給find_char”
    這個(gè)解決方案沒(méi)太看明白,定義一個(gè)什么類(lèi)型的string變量呢 如果是const string,那豈不是還是不能賦值給find_char,如果是非const string,那上層傳遞過(guò)來(lái)的const string 又如何能賦值給這個(gè)副本呢?
  •   上面寫(xiě)錯(cuò)頁(yè)碼了 是P192頁(yè)。
  •   我手里只有英文版的,頁(yè)碼不太對(duì)的上。你所提到地方是6.2.3最后那一段話吧?如下:
    The right way to fix this problem is to fix the parameter in find_char. If it’s not possible to change find_char, then define a local string copy of s inside is_sentence and pass that string to find_char.
    這里【針對(duì)那個(gè)不好的設(shè)計(jì)】提出了兩個(gè)解決方案:
    其一,把find_char的第一個(gè)parameter修改成(const string& s)。
    其二,如果第一個(gè)方案無(wú)法實(shí)現(xiàn)的話,就在is_sentence函數(shù)里定義一個(gè)local的s的copy,再把這個(gè)copy傳給find_char。
    以上二方案是針對(duì)那個(gè)bad design的,也就是:
    string::size_type
    find_char( /* no const */ string &s, char c, string::size_type &occurs);
  •   方案2的代碼應(yīng)為:
    bool is_sentence(const string &s)
    {
    string::size_type ctr = 0;
    string temp = s; //NOTE HERE
    return find_char(temp, '.', ctr) == s.size() - 1 && ctr == 1;
    }
  •   回到你的問(wèn)題:
    “這個(gè)解決方案沒(méi)太看明白,定義一個(gè)什么類(lèi)型的string變量呢 如果是const string,那豈不是還是不能賦值給find_char,如果是非const string,那上層傳遞過(guò)來(lái)的const string 又如何能賦值給這個(gè)副本呢?”
    定義一個(gè)什么類(lèi)型的string變量呢 -- nonconst string對(duì)象,如上述代碼;
    那豈不是還是不能賦值給find_char -- 可以。該方案針對(duì)的是那個(gè)bad design,也就是使用nonconst的find_char,如上述。
    如果是非const string,那上層傳遞過(guò)來(lái)的const string 又如何能賦值給這個(gè)副本呢?--可以,const的含義是“只讀”.可以【用const 創(chuàng)建非const】。就是說(shuō)可以用“只讀的”創(chuàng)建“讀寫(xiě)的”。事實(shí)上這是一種標(biāo)準(zhǔn)做法,也就是你提到的【副本】更詳細(xì)的內(nèi)容參看第七章和第十三章關(guān)于copy constructor的內(nèi)容。
    --綴一句,你提到的問(wèn)題十分重要,是編程的基礎(chǔ)思想,在c和其他語(yǔ)言里也有體現(xiàn),最好能寫(xiě)代碼體會(huì)一下。
  •   剛才試了下,果然能編過(guò)
    明白了,方案2 中間插入了副本,這個(gè)副本既不是引用也不是指針 所以不存在const能不能賦值的約束關(guān)系。
    多謝。 留個(gè)郵箱吧, 有問(wèn)題繼續(xù)喝你交流。
  •   才看到你后面的回復(fù)。 我是把指針和引用的賦值 和 變量的直接賦值 搞混淆了。
    先上班去了。thx : )
  •   moophy@foxmail.com
    這個(gè)還能對(duì)付,太難的就不行了。。
  •   傳個(gè)答案吧。 參考下。
  •   已發(fā)送,查收。
    compiler弄好了嗎?這些代碼多數(shù)都需要C++11的支持才能compile。。
  •   進(jìn)度是15.22,基本都有comment,發(fā)現(xiàn)bug務(wù)必告訴我一下。
  •   最近太忙了
    回來(lái)都凌晨了。。
    爭(zhēng)取早日跟上你的進(jìn)度。
    編譯器擺弄了下Mingw 沒(méi)擺弄明白。
    準(zhǔn)備有空裝個(gè)虛擬機(jī)跑ubuntu了。
  •   哈哈,我也在用ubuntu。 虛擬機(jī)不太靠譜,各種莫名其妙的問(wèn)題。空間夠的話,直接給ubuntu裝個(gè)分區(qū)好了,穩(wěn)定的多,雙系統(tǒng)的啟動(dòng)也很方便。然后,ubuntu自帶的gcc版本也不夠,有些c++11的特性有bug,要手動(dòng)升級(jí)到4.8。
  •   ufo22332003@gmail.com,求答案
  •   @ptmagic
    已發(fā)。
    編譯的時(shí)候注意C++11 的flag。
    發(fā)現(xiàn)bug,或其它問(wèn)題,告訴我一下。
  •   沒(méi)有問(wèn)題哈哈@戳戳
  •   xiekun605746@163.com 感謝樓主
  •   @steve evan
    已發(fā)。
    編譯的時(shí)候注意C++11 的flag。
    發(fā)現(xiàn)bug,或其它問(wèn)題,告訴我一下。
  •   額,這個(gè)世界上任何事物不都是一直在進(jìn)行著揚(yáng)棄的過(guò)程么?C++ 當(dāng)然也不例外。
  •   納尼?7月份出新版,我才剛買(mǎi)的書(shū)。。。。我去,英文看起來(lái)好慢。。。
  •   哎...又是一個(gè)不知情白扔錢(qián)的孩子,能退就退了吧,新版還有不到一個(gè)月就出了,有C++11標(biāo)準(zhǔn),很權(quán)威,老版基本沒(méi)啥用了~
  •   支持你!最近想入門(mén),看到你的話有信心了。
  •   我先拋磚引玉哈
    On page 324, in table 9.8, there is a typo with the description of c.resize(n). “ If N < c.size(), the excess elements are discarded.” should be changed into “ If n< c.size(), the excess elements are discarded.”
  •   On page 353, in the section of DEFINED TERMS, the "ff" in the last line of the description of "begin" should be "if".
  •   On page 361, in the section of 10.3.2 Types Defined by map, a period mark is missing at the end of the first sentence.
  •   On page 365, the second line of the first paragraph, map<string,int>::value_type(anna,1) , should be
    map<string,int>::value_type("Anna",1)
  •   樓主你好,我是本科一枚啊,非計(jì)算機(jī)專(zhuān)業(yè),但我灰常喜歡C++,目前正在看《C++ Primer 4th》。如果我把C++理論知識(shí)學(xué)好了,但我沒(méi)有開(kāi)發(fā)經(jīng)驗(yàn),畢業(yè)時(shí)能找到一個(gè)相對(duì)來(lái)說(shuō)還可以的IT工作嗎?我以后打算從事這方面的工作,希望樓主過(guò)來(lái)人指點(diǎn)迷津啊,多謝!
  •   如果你打算以后從事軟件行業(yè),在校時(shí)就可以去一些軟件公司實(shí)習(xí)。
 

250萬(wàn)本中文圖書(shū)簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書(shū)網(wǎng) 手機(jī)版

京ICP備13047387號(hào)-7