Galutinis vadovas ir knygų sąrašas „C ++“

Šis klausimas bando surinkti keletą perlų tarp dešimčių blogų C ++ knygų, kurios kasmet skelbiamos.

Skirtingai nuo daugelio kitų programavimo kalbų, kurios dažnai pasirenkamos iš internetinių knygų, nedaugelis iš jų gali greitai pasiimti „C ++“, nesimokydami gerai parašytos „C ++“ knygos. Norėdami tai padaryti, tai per sunku ir sunku. Tiesą sakant, tai yra tokia didelė ir sudėtinga, kad yra daug labai blogų C ++ knygų . Ir mes nekalbame apie blogą stilių, bet tokius dalykus, kaip akivaizdžios akivaizdžios klaidos, ir siaubingai blogų programavimo stilių skatinimą.

Prašome redaguoti priimtą atsakymą, kad pateiktumėte kokybiškas knygas ir apytikslį įgūdžių lygį, pageidautina po to, kai aptariate papildymą „ C ++“ pokalbyje . (Nuolatiniai žmonės gali negailestingai atšaukti savo darbą, jei nesutinka su rekomendacija.) Pridėkite trumpą kiekvieno knygos, kurią asmeniškai skaitote / gausite, reklamą. Nesivaržykite aptarti kokybę, antraštes ir kt. Knygos, atitinkančios kriterijus, bus įtrauktos į sąrašą. Knygos, kuriose yra C ir C ++ vartotojų asociacijos (ACCU) apžvalgos, turi nuorodą į peržiūrą.

* Pastaba. Dažniausiai užduodamus klausimus ir kitus išteklius galima rasti „ C ++“ ir „ Sub>“

4250
23 дек. nustatė grepsedawk 23 d. 2008-12-23 08:23 '08, 08:23, 2008-12-23 08:23
ответ 1 atsakymas

naujokas

Įvadas, programavimo patirtis

  • C ++ Primer * (Stanley Lippmann, José Lajay ir Barbara E. Mu) ( atnaujinta C ++ 11 ) Tai 1 puslapio įvadas, kuris yra labai išsamus C ++ įvadas, kuris apima beveik viską labai prieinamoje kalboje ir yra labai išsamus. Penktasis leidimas (išleistas 2012 m. Rugpjūčio 16 d.) Apima C ++ 11. [Peržiūra]

  • Programavimas: principai ir praktika naudojant C ++ ( Bjarn Straustrup, 2-asis leidimas - 2014 m. Gegužės 25 d.) ( Atnaujinta C ++ 11 / C ++ 14 ) Įvadas į programavimą naudojant C ++ kalbos kūrėją. Geras skaitymas, kuris nereiškia ankstesnės programavimo patirties, bet ne tik pradedantiesiems.

* Negalima painioti su „ C ++ Primer Plus“ („Stephen Prath“) su gerokai mažiau palankia peržiūra .

Įvadas su ankstesne programavimo patirtimi

  • „C ++ Tour“ (Bjarne Straustrup) ( 2-asis leidimas „C ++“) 17 „Tour“ yra trumpas (apie 180 puslapių ir 14 skyrių) vadovo apžvalga visais standartiniais C ++ (kalbos ir standartinė biblioteka, naudojant C ++ 11 ) vidutiniškai aukštai žmonių, kurie jau žino „C ++“ arba bent jau yra patyrę programuotojai. Ši knyga yra išplėstinė medžiagos versija C ++ programavimo kalbos 2–5 skyriuose, 4-asis leidimas.

  • Pagreitintas C ++ (Andrew Koenig ir Barbara Mu, 1-asis leidimas - 2000 m. Rugpjūčio 24 d.) Tai iš esmės apima tą patį pagrindą, kaip C ++ gruntas, bet tai daro ketvirtoje erdvės dalyje. Tai daugiausia priklauso nuo to, kad tai nėra bandymas būti įvadu į programavimą, bet įžangą C ++ žmonėms, kurie anksčiau programavo kita kalba. Ji turi griežtesnę mokymosi kreivę, bet tiems, kurie gali tai tvarkyti, tai labai kompaktiškas įvadas į kalbą. (Istoriškai jis pirmą kartą atidarė knygą, kurioje buvo vartojamas šiuolaikinis požiūris į kalbų mokymąsi.) Nepaisant to, C + +, kurį jis moko, yra tik C ++ 98. [Peržiūra]

Geriausia praktika

  • Efektyvus C + + (Scott Meyers, 3-asis leidimas - 2005 m. Gegužės 22 d.) Tai buvo parašyta siekiant tapti geriausia antra C + + knyga, kurią programuotojai turi skaityti, ir tai pavyko. Ankstesni leidiniai buvo sukurti programuotojams, atvykusiems iš C, o trečiasis leidimas tai pakeičia ir yra skirtas programuotojams iš tokių kalbų kaip „Java“. Jis pristato ~ 50 lengvai įsimintinų nykščio taisyklių ir jų loginį pagrindą labai prieinamu (ir maloniu) stiliumi. C ++ 11 ir C ++ 14 pavyzdžiai ir kai kurios problemos yra pasenusios, o efektyvus šiuolaikinis C ++ turėtų būti teikiamas pirmenybė. [Peržiūra]

  • Efektyvus šiuolaikinis C + + (Scott Meyers) Tai iš esmės nauja „C ++“ versija, skirta C ++ programuotojams, perkeliantiems iš C ++ 03 į C ++ 11 ir C ++ 14.

  • Efektyvus STL (Scott Meyers) Tai daroma norint padaryti tą pačią standartinės bibliotekos dalį, kuri kilo iš STL, kaip Efektyvus C ++ padarė su visa kalba: jis pateikia praktikos taisykles kartu su jų pagrindimu. [Peržiūra]

tarpinis

  • Efektyvesnis C ++ (Scott Meyers) Dar daugiau praktinių taisyklių, nei efektyvus C ++. Ne taip svarbu, kaip ir pirmojoje knygoje, bet dar naudinga žinoti.

  • Išskirtinis C + + (Herb Sutter) Pateikiamas kaip galvosūkių rinkinys, kuriame yra viena iš geriausių ir išsamių diskusijų dėl tinkamų išteklių valdymo ir saugumo išimčių C + + per „Įgyti išteklius - inicijavimą (RAII)“, be nuodugnios daugelio kitų temų, įskaitant „pimpl idiom“ , pavadinimo peržiūra, geros klasės dizainas ir C ++ atminties modelis. [Peržiūra]

  • Daugiau išskirtinių C ++ (Herb Sutter) Apima papildomų išimčių saugumo temas, kurios neįtrauktos į išskirtinius C ++, be to, aptariami efektyvūs objekto programavimas C ++ sistemoje ir tinkamas STL naudojimas. [Peržiūra]

  • Išskirtinis C ++ stilius (Herb Sutter) aptaria bendrą programavimą, optimizavimą ir išteklių valdymą; šioje knygoje taip pat pateikiamas puikus pristatymas, kaip rašyti modulinį kodą C ++ sistemoje naudojant ne nario funkcijas ir pasidalijamosios atsakomybės principą. [Peržiūra]

  • C ++ kodavimo standartai (Herb Sutter ir Andrei Aleksandrescu) „Kodavimo standartai“ čia nereiškia „kiek vietos turėčiau įvesti savo kodui?“ Šioje knygoje yra 101 geriausios praktikos, idiomų ir bendrų klaidų, kurios gali padėti jums parašyti teisingą, suprantamą ir veiksmingą C + + kodą. [Peržiūra]

  • C + + šablonai: pilnas vadovas (David Vandevoorde ir Nicolai M. Josuttis) Tai knyga apie šablonus, kurie egzistavo prieš C ++ 11. Jis apima viską nuo pagrindinio iki pažangiausio šablono metaprogramavimo ir paaiškina kiekvieną detalę, kaip šablonai veikia (konceptualiai ir kaip jie įgyvendinami) ir aptaria daugelį bendrų klaidų. Ji puikiai apibendrina bendrosios apibrėžties taisyklės (ODR) ir perkrovos sprendimus taikomosiose programose. Antrasis leidimas, apimantis C ++ 11, C ++ 14 ir C ++ 17, jau paskelbtas. [Peržiūra]

  • C ++ 17 - pilnas vadovas (Nikolajus M. Josuttis) Ši knyga apibūdina visas naujas funkcijas, įtrauktas į standartą C ++ 17, apimančias viską nuo paprasto, pavyzdžiui, „įmontuotus kintamuosius“, „constexpr jei“ ir iki „polimorfinių atminties išteklių "ir" nauji ir ištrinti duomenys su perduotais duomenimis ".


border=0

pažengęs

  • Modernus C ++ dizainas (Andrei Aleksandrescu) Naujoviška bendra pažangių programavimo metodų knyga. Pateikia politikos pagrindu sukurtą dizainą, tipų sąrašus ir pagrindinius bendruosius programavimo idiomus, o tada paaiškina, kiek naudingų dizaino modelių (įskaitant mažus objektų paskirstytojus, funkcinius, gamyklas, lankytojus ir daugialypius metodus) galima efektyviai, moduliškai ir tik naudojant universalius programavimo metodus. ., [Peržiūra]

  • C ++ Metaprogramming Template (David Abrahams ir Aleksejus Gurtovoy)

  • C + + lygiagrečiai veiksmai (Anthony Williams) Knyga, apimanti C ++ 11 palaikymą, įskaitant gijų biblioteką, atomų biblioteką, C ++ atminties modelį, spynas ir „mutexes“, taip pat įvairių sriegių programų projektavimą ir derinimą.

  • Išplėstinė C ++ metaprogramavimas (Davide Di Gennaro) Preliminari pamoka apie TMP iki C ++ 11, labiau orientuota į praktiką nei teoriją. Šioje knygoje yra daug fragmentų, kai kurie iš jų yra pasenę dėl tipo bruožų, tačiau metodai vis dar naudingi žinoti. Jei galite suformuoti keistą formatavimą / redagavimą, lengviau skaityti nei Alexandrescu, ir galbūt tai yra naudingesnė. Patyrusiems kūrėjams yra didelė tikimybė, kad galite rasti kažką apie tamsų „C ++“ kampą („fad“), kuris paprastai būna tik iš didelės patirties.


border=0

Nuorodų stilius - visi lygiai

C ++ 11/14/17 / ... Nuorodos:

  • C ++ 11/14/17 standartas (INCITS / ISO / IEC 14882: 2011/2014/2017) Tai, žinoma, yra galutinis arbitras visais, kurie yra arba nėra C ++. Tačiau turėkite omenyje, kad tai skirta tik patiems naudotojams, norintiems suprasti daug laiko ir pastangų. Standartas C ++ 17, išleistas elektroniniu būdu už 198 Šveicarijos frankų.

  • C ++ 17 standartas yra prieinamas, tačiau, matyt, ne ekonomiškai - tiesiogiai iš ISO kainuoja 198 Šveicarijos frankų (apie 200 JAV dolerių). Daugumai žmonių galutinis projektas prieš standartizavimą yra daugiau nei tinkamas (ir nemokamas). Daugelis pirmenybę teiks dar naujesniam projektui, kuriame dokumentuojamos naujos funkcijos, kurios gali būti įtrauktos į C ++ 20.

  • C ++ apžvalga (C ++ 11/14) (tik PDF) (Scott Meyers) ( atnaujinta C ++ 14 ) Tai yra trijų dienų treniruotės, kurią siūlo „Scott Meyers“, kuris yra labai gerbiamas C ++ autorius, pristatymo medžiagos (skaidrių ir kai kurių paskaitų). Nors elementų sąrašas yra trumpas, kokybė yra didelė.

  • „C ++“ pagrindinis vadovas (C ++ 11/14/17 / ...) (redagavo Bjarn Stroustrup ir Herb Satter) yra besivystantis internetinis dokumentas, sudarytas iš rekomendacijų, kaip naudoti šiuolaikinį C ++ šulinį. Gairėse daugiausia dėmesio skiriama aukštesnio lygio klausimams, pvz., Sąsajoms, išteklių valdymui, atminties valdymui ir suderinamumui, turinčiam įtakos programos ir bibliotekos dizainui. Projektą paskelbė „CppCon'15“ Bjarn Straustrup ir kiti ir sveikina bendruomenės indėlį. Dauguma vadovų yra papildyti loginiu pagrindu ir pavyzdžiais, taip pat aptariamos galimos paramos priemonės. Daugelis taisyklių yra specialiai sukurtos automatiniam patikrinimui naudojant statinius analizės įrankius.

  • „Super-FAQ“ C ++ („Marshall Cline“, „Bjarne Stroustrup“ ir kt.) Yra „Standard C ++“ fondo bandymas sujungti C ++ dažnai užduodamus klausimus, kuriuos anksčiau individualiai palaikė Marshall Cline ir Bjarne Stroustrup, taip pat įtraukti naujas medžiagas. Dalykai dažniausiai sprendžiami tarpiniu lygmeniu ir dažnai rašomi humoristiniu tonu. Ne visus elementus galima visiškai atnaujinti į naujausią C ++ standarto versiją.

  • cppreference.com (C ++ 03/11/14/17 / ...) (inicijavo Nate Kohl) yra wiki, apibendrinanti pagrindines pagrindines kalbos funkcijas ir turinti platų C ++ standartinės bibliotekos dokumentaciją. Dokumentai yra labai tikslūs, tačiau lengviau skaityti nei oficialus standartinis dokumentas, o tai suteikia geresnę navigaciją dėl savo wiki pobūdžio. Projekte dokumentuojamos visos C ++ standarto versijos, o svetainė leidžia filtruoti ekraną tam tikrai versijai. Projektą pristatė Nate Kohl CppCon'14 .


border=0

Klasikiniai / vyresni

Pastaba Kai kuri šiose knygose esanti informacija gali būti pasenusi arba nebebus laikoma geriausia praktika.

  • C ++ dizainas ir evoliucija (Bjarne Straustrup) Jei norite sužinoti, kodėl tai yra kalba, ši knyga yra ten, kur rasite atsakymus. Tai apima viską prieš standartizuojant „C ++“.

  • Svarstymai apie C + + (Andrew Koenig ir Barbara Mu) [Peržiūra]

  • Išplėstas C ++ programavimo stilius ir idėjos (James Coplien) Judėjimo modelių pirmtakas, jis apibūdina daugelį „C ++“ specifinių „idiomų“. Tai tikrai labai gera knyga, ir gali būti verta perskaityti, jei galite sutaupyti laiko, bet tai yra gana senas ir nėra naujausias su dabartiniais C ++ įvykiais.

  • Didelio masto C ++ programinės įrangos dizainas (John Lacos) Lacos aiškina labai didelių C ++ programinės įrangos projektų valdymo būdus. Žinoma, geras skaitymas, jei jis buvo svarbus. Jis buvo parašytas ilgai prieš „C ++ 98“ ir praleido daugelį funkcijų (pvz., Vardų), kurios yra svarbios dideliems projektams. Jei reikia dirbti su dideliu C ++ programinės įrangos projektu, galbūt norėsite jį perskaityti, nors jums reikia pateikti daugiau nei tik šiek tiek druskos. Pirmasis naujos redakcijos apimtis tikimasi 2018 m .

  • C ++ objekto modelio (Stanley Lippman) viduje Jei norite sužinoti, kaip paprastai įgyvendinamos virtualių narių funkcijos ir kaip pagrindiniai objektai dažniausiai įdedami į atmintį daugkartinio paveldėjimo scenarijuje, ir kaip visa tai veikia našumą, čia rasite išsamias tokių temų diskusijas. .

  • C ++ Annotated Reference Manual (Bjarne Stroustrup, Margaret A. Ellis) Ši knyga yra gana pasenusi, nes ji apima 1989 m. C ++ 2.0 versiją - modeliai, išimtys, vardų erdvės ir nauji metimai dar nepateikti. Tačiau sakydamas, kad ši knyga perkelia visą to laiko C ++ standartą, paaiškindama kalbos loginį pagrindą, galimas realizacijas ir savybes. Tai nėra knyga, skirta C ++ programavimo principams ir modeliams išmokti, bet kiekvienam C ++ kalbos aspektui suprasti.

  • Mąstymas C ++ (Bruce Ekel, 2. leidimas, 2000). Du tomai; Tai nemokamas pradinio lygio vadovėlių rinkinys. Atsisiuntimai: 1 tomas, 2 tomas . Deja, juos nustelbia nemažai klaidingų klaidų (pvz., Teigdamos, kad const automatiškai laikinai statomi), be oficialaus klaidų sąrašo. Dalinis 3-osios šalies klaidų sąrašas pateikiamas adresu ( http://www.computersciencelab.com/Eckel.htm ), tačiau, atrodo, tai nepalaikoma.

  • Mokslinis ir techninis C ++: Įvadas į pažangius metodus ir pavyzdžius (John Barton ir Lee Nackman) Tai išsami ir labai išsami knyga, kurioje bandoma paaiškinti ir naudoti visas C ++ funkcijas skaitmeninių metodų kontekste. Tuo metu jis pristatė kelis naujus metodus, pavyzdžiui, keistą modelio kartojimą (CRTP, taip pat vadinamą „Barton-Nackman trick“). Jis pirmą kartą taikė kelis metodus, pvz., Matmenų analizę ir automatinį diferenciaciją. Jame yra daug kompiliuojamų ir naudingų kodų, nuo išraiškos analizatoriaus iki Lapack wrapper. Kodas vis dar prieinamas čia: http://www.informit.com/store/sciences-and-engineering-c-plus-plus-an-introduction-9780201533934 . Deja, knygos tapo šiek tiek pasenusios C ++ stiliaus ir savybių, tačiau tuo metu tai buvo neįtikėtina kelionė (1994 m., Prieš STL). Paveldėjimo dinamikos skyriai yra šiek tiek sunkiai suprantami ir ne labai naudingi. Atnaujinta šios klasikinės knygos versija, apimanti judėjimo semantiką ir STL pamokas, būtų labai gera.

4251
23 дек. Atsakymas pateikiamas Johannes Schaub - litb 23 d. 2008-12-23 08:52 '08 8:52 am. 2008-12-23 08:52

Kiti klausimai apie žymes arba Užduoti klausimą