The C++ Programming Language

The C++ Programming Language

  • Downloads:9503
  • Type:Epub+TxT+PDF+Mobi
  • Create Date:2021-05-17 10:54:02
  • Update Date:2025-09-06
  • Status:finish
  • Author:Bjarne Stroustrup
  • ISBN:0321563840
  • Environment:PC/Android/iPhone/iPad/Kindle

Summary

The new C++11 standard allows programmers to express ideas more clearly, simply, and directly, and to write faster, more efficient code。 Bjarne Stroustrup, the designer and original implementer of C++, has reorganized, extended, and completely rewritten his definitive reference and tutorial for programmers who want to use C++ most effectively。 "The C++ Programming Language, Fourth Edition, " delivers meticulous, richly explained, and integrated coverage of the entire language--its facilities, abstraction mechanisms, standard libraries, and key design techniques。 Throughout, Stroustrup presents concise, "pure C++11" examples, which have been carefully crafted to clarify both usage and program design。 To promote deeper understanding, the author provides extensive cross-references, both within the book and to the ISO standard。 New C++11 coverage includes
Support for concurrency
Regular expressions, resource management pointers, random numbers, and improved containers
General and uniform initialization, simplified for-statements, move semantics, and Unicode support
Lambdas, general constant expressions, control over class defaults, variadic templates, template aliases, and user-defined literals
Compatibility issues
Topics addressed in this comprehensive book include
Basic facilities: type, object, scope, storage, computation fundamentals, and more
Modularity, as supported by namespaces, source files, and exception handling
C++ abstraction, including classes, class hierarchies, and templates in support of a synthesis of traditional programming, object-oriented programming, and generic programming
Standard Library: containers, algorithms, iterators, utilities, strings, stream I/O, locales, numerics, and more
The C++ basic memory model, in depth
This fourth edition makes C++11 thoroughly accessible to programmers moving from C++98 or other languages, while introducing insights and techniques that even cutting-edge C++11 programmers will find indispensable。 "This book features an enhanced, layflat binding, which allows the book to stay open more easily when placed on a flat surface。 This special binding method--noticeable by a small space inside the spine--also increases durability。"

Download

Reviews

Sushant Sharma

The book on C++! Nothing else to say! Right from the creator of C++。I like the writing style of Bjarne。 Even though this is technical book, you'll get philosophical thoughts behind several design choices of his in C++。 A treat to read and learn from this book! Awesome! The book on C++! Nothing else to say! Right from the creator of C++。I like the writing style of Bjarne。 Even though this is technical book, you'll get philosophical thoughts behind several design choices of his in C++。 A treat to read and learn from this book! Awesome! 。。。more

Steve Rainwater

1 - Review of The C++ Programming Language1。1 - IntroductionThis review is about the book, The C++ Programming Language1。1。1 - ParadigmThe paradigm used to review the book will be to write in the overly verbose, information-sparse format of the book itself。1。1。2 - FormatThe format of this review will be to provide an introduction, expanded by sub-sections on the paradigm, format, scope, structure, and other aspects of the review。 After that the review itself will be presented。 Lastly, a summatio 1 - Review of The C++ Programming Language1。1 - IntroductionThis review is about the book, The C++ Programming Language1。1。1 - ParadigmThe paradigm used to review the book will be to write in the overly verbose, information-sparse format of the book itself。1。1。2 - FormatThe format of this review will be to provide an introduction, expanded by sub-sections on the paradigm, format, scope, structure, and other aspects of the review。 After that the review itself will be presented。 Lastly, a summation will be provided。1。1。3 - ScopeThe scope of this review primarily covers the book The C++ Programming Language but may refer to other books that represent canonical descriptions of specific programming languages, usually for the purpose of comparison。 1。1。4 - StructureThis review is structured such that there are lots of sections, sub-sections, and sub-sub-sections that offer many opportunities to be verbose while simultaneously obsfucating the important points and annoying the reader。 Note: at times it will also be necessary to use sub-sub-sub-sections and the reader will hopefully understand the necessity for these as they arise。1。1。5 - ExercisesUnlike the book, this review includes no exercises for the reader since these will be ignored anyway and are not generally useful。1。1。6 - Aims and MeansThe goal of writing a review in this annoying form is to give the reader a taste for what it's like to read this annoying book in all its Dilberesque, corporate-speak glory。1。1。7 - Historical NoteIt is acknowledged by the author of this review that writing a review in this way is unusual but this book's format and style was found to be particularly annoying。1。1。8 - Philosophical NoteThese headings were not invented for this review。 They can all be found in the book itself。1。2 - The Review1。2。1 - ScopeThis section will contain the most important points of the review1。2。2 - FormatThis section will not include sub-sections such as Paradigm or Historical Notes that were included in other sections of this review as they have been determined not to be as useful in this section of the review。1。2。3 - StructureThis section of the review will contain the review but not things unrelated to the review such introductions to the review or summations of the review1。2。3。a - Location of topics not within scope of this section1。2。3。a1 - The Introduction can be found prior to (1。2) The Review in section (1。1)1。2。3。a2 - The Summation can be found after (1。2) The Review in section (1。3)1。2。4 - Length of Subsequent Sub-SectionThe subsequent sub-section is longer than others due to additional content needed to inform the reader。 There was debate about breaking it into a series of sub-sections but it was determined this was not the best approach (and it was also determined it was important to explain this rationale to the reader who may have run into similar dilemmas in writing their own reviews)。1。2。5 The Content of the ReviewThere have been many definitive books written about programming languages by their respective creators。 These books tend to be concise, useful, readable, and even enjoyable books that often become classic volumes of computer science history。 Books such as The C Programming Language by Kernighan and Ritchie or Programming in Modula-2 by Nilaus Wirth come to mind as typical examples。 The C++ Programming Language is not one of these。 The book is overly verbose, redundant, and often not even very clear about what it's trying to get across。 Another C++ book will likely be needed to fully grasp the language。 It's also a long, slow slog to make it through this book, even if the reader has a general interest in programming and programming languages。1。2。6 RecommendationNot Recommended。1。2。6。a - Explorations of the Recommendation1。2。6。a1 - Anyone looking for an enjoyable read or hoping to learn C++ should avoid this book1。2。6。a2 - C++ programmers who feel the need to posses the language designer's official description of the language as a reference might want to get this book。1。2。6。a2-ii - But attempting to read it linearly is not recommended, instead use it simply as a reference guide in which to look up topics when needed。1。3 - Summation1。3。1 - ScopeThe scope of the summation includes reminding the reader of what has been said and re-enforcing certain points considered important to grasping these points。1。3。2 - StyleThis review has been presented in a format consisting of an Introduction (1。1), followed by further comments in The Review (1。2) and, finally, summarized in a Summation (1。3)。 1。3。3 - Rules of ThumbsA programmer should be careful is learning and using a programming language created by someone who is not able to describe the language clearly and concisely but there are, of course, exceptions to the rule so don't attempt to apply it arbitrarily to any language in particular, even this one。 1。3。4 - CaveatWhile the book was quite a slog, there may be a redeeming quality such as humor at having survived the experience。 Arguments for and against this line of thought exist。 Consider your application carefully before adopting this approach。 。。。more

Ryan

Out of all the books I've flagged as "favorites", it occurs to me that this might be among the most uplifting ones。 And if you leave out the index, it's not only more cheerful than The Rise and Fall of the Third Reich, it's also shorter。Look at the author's happy face ^^^If you're in a hurry to program a guided ballistic weapons system or a high-frequency currency trading algorithm for a major defense contractor or hedge fund and need to LEARN C++, start with one of the "For Dummies" books。 But Out of all the books I've flagged as "favorites", it occurs to me that this might be among the most uplifting ones。 And if you leave out the index, it's not only more cheerful than The Rise and Fall of the Third Reich, it's also shorter。Look at the author's happy face ^^^If you're in a hurry to program a guided ballistic weapons system or a high-frequency currency trading algorithm for a major defense contractor or hedge fund and need to LEARN C++, start with one of the "For Dummies" books。 But if you're past the beginner level and are ready to be able to literally beat someone to death with your advanced knowledge of the language, it's the hardcover tome to have in hand。 Pretty much the Holy Religious Text of C++, with the Creator's reasoning for everything laid forth in laborious, Talmudic detail。 However, if you use templates, operator overloading, preprocessor directives, and the goto statement in the right combination, I have it on good authority that you can also use it to summon demons (at least, Adam always kept his office door closed and smelled sort of like sulphur when he came out)。 What more could you want?On a less snarky note, I learned C++ in order to become a game developer circa 2000。 At that time, plain ol' C was still popular, but its limitations at building large, complex, scalable codebases were getting pretty apparent。 C++ tried to have the best of both worlds in terms of letting programmers write modular, snap-together systems, but also holding onto the high-performance, close-to-the-metal capabilities of the C core。 It's an awkward marriage at best, and it's very easy for ill-disciplined programmers to write code that's not very satisfying in either regard。 Thankfully, faster processors and more memory have allowed more recent languages to just remove memory management, rigorous typing, compilation, and general resource miserliness as user concerns。 Still C++ has left a strong imprint on subsequent generations of programming languages, from Java to javascript to Python。 In fact, some newer languages have had C++-like elements and concepts shoehorned into them later in their evolution, because it's just the OO model everyone is used to。 If you master C++, pretty much any full-featured programming language that doesn't require you to know the difference between pointers and references, or leave your application prone to crashing if you accidentally misuse them, will leave you feeling spoiled。 You'll be able to tell the script kiddies how easy they have it, and they'll say "okay, Boomer" and ignore you。 。。。more

Scott Holstad

Possibly the best book I've read on C++, although I haven't had as comprehensive research here as I have in other areas。 In any event, recommended。 Possibly the best book I've read on C++, although I haven't had as comprehensive research here as I have in other areas。 In any event, recommended。 。。。more

Mickey Marian

Must read for c++ programmers。 Extremely in depth。 Not for beginners。 But a great supplement for intermediate c++ programmer and beyond。

Shyam Poovaiah

The C++ Bible!

Mihail Feraru

Skimmed through it。 I would rather recommend online cpp reference or other books for educational purposes。 Should re-read later。

Stefan

Solid reference for C++; maybe not the most succinct (and as none C++ of book is, not the most exhaustive) but approachable, rather well organised book, definitely a classic if you write code in it。Would be nice to see a C++20 update, hopefully that's in works。。 Solid reference for C++; maybe not the most succinct (and as none C++ of book is, not the most exhaustive) but approachable, rather well organised book, definitely a classic if you write code in it。Would be nice to see a C++20 update, hopefully that's in works。。 。。。more

Bhekithemba Masondo

This review has been hidden because it contains spoilers。 To view it, click here。 I want to know more about C++ Programming Language

Stefán Örvar Sigmundsson

This book is written by experts for experts。 Students of programming will gain little from reading this book。

Ivan Dachev

The hest of the best 😃

Uli Kunkel

Book's first part is fantastic。 I can't highly recommend it to a professional software deveolper who watns to RASIE it to a HIGHER standard。 The SECOND part was more difficult to digest。 Anyway, I didn't regret it。 Book's first part is fantastic。 I can't highly recommend it to a professional software deveolper who watns to RASIE it to a HIGHER standard。 The SECOND part was more difficult to digest。 Anyway, I didn't regret it。 。。。more

MBybee

The best guide there is to C++, and a worthwhile update to the version I had before。Happy to have a copy digitally now, as it makes it easier to search for "that specific thing" when I'm using it。 The best guide there is to C++, and a worthwhile update to the version I had before。Happy to have a copy digitally now, as it makes it easier to search for "that specific thing" when I'm using it。 。。。more

Steven Thomas

The 5th greatest programming book I have ever read but the best and most definitive on agnostic c++ in existence。 Of course, it is written by the most definitive source。 No frills, no biased API sets。 Just solid computer science。

Sandra

The best C++ reference, as always。 Not a fan of the way in whichever the language is being reshaped。

Manuel Antão

If you're into stuff like this, you can read the full review。Zero-overhead Abstraction: "The C++ Programming Language" by Bjarne Stroustrup(Original Review, 2001)Back in the day, I started programming AMOS on Commodore Amiga500。 It was almost exactly like QBasic, but was able to do more powerful graphics and sound in an easier way, though still extremely similar。 Because of how slow those CPUs were, I had to always try to find ways to make the programs run as fast as possible。 And then I started If you're into stuff like this, you can read the full review。Zero-overhead Abstraction: "The C++ Programming Language" by Bjarne Stroustrup(Original Review, 2001)Back in the day, I started programming AMOS on Commodore Amiga500。 It was almost exactly like QBasic, but was able to do more powerful graphics and sound in an easier way, though still extremely similar。 Because of how slow those CPUs were, I had to always try to find ways to make the programs run as fast as possible。 And then I started programming QBasic on a 200Mhz PC, still being focused on trying to get as much power as possible in my programs。 Around 2001 I started with C++ by using Stroustrup’s book, and even though we had a lot of power, I was manically trying to make everything as simple and efficient as possible, to get all that power out, even though I was on a powerful i7 with a GTX780。 Whenever I thought of using "smart pointers", I always thought that I'll just use ordinary, low-level pointers, because I don't want to incur any overhead whatsoever。 Check if a pointer is OK? Screw that, it'll cost me! Better to make sure it doesn't happen, rather than to check if it did happen, by being smart about it。 。。。more

Brian Salehi

Interestingly covered everything in too much details。If you're a newcomer to the C++ language, runaway from this book!I strongly suggest "Sams Teach Yourself C++" book for newbies。If you're an experienced C++ programmer, then here you go! this book is for you。by the way, DO NOT use this book as a learning tutorial, consider it as a reference which you can refer to whenever you need to get into the details of a topic。In the way of using this book as a tutorial, the problem arises when you face a Interestingly covered everything in too much details。If you're a newcomer to the C++ language, runaway from this book!I strongly suggest "Sams Teach Yourself C++" book for newbies。If you're an experienced C++ programmer, then here you go! this book is for you。by the way, DO NOT use this book as a learning tutorial, consider it as a reference which you can refer to whenever you need to get into the details of a topic。In the way of using this book as a tutorial, the problem arises when you face a topic which uses future discussed details as current explanation which makes any newcomer confused。you really need to be confident about C++ already to get it right。Use it only when you need to get into deep details of a specific topic。 。。。more

Nickdepenpan123

Along with the book's status as the bible of C++, it's also easy to come across strong criticisms and rejections of the book。 Understandable as these are, I feel they're largely unfair。 One common criticism is that the book is difficult, disorganized and certainly not for novices。 I think that's probably true, if you read it once。 But this book (and I'd think anything that delves into a particular technical or difficult topic and thoroughly explores it, from the shallow to the deep end, in other Along with the book's status as the bible of C++, it's also easy to come across strong criticisms and rejections of the book。 Understandable as these are, I feel they're largely unfair。 One common criticism is that the book is difficult, disorganized and certainly not for novices。 I think that's probably true, if you read it once。 But this book (and I'd think anything that delves into a particular technical or difficult topic and thoroughly explores it, from the shallow to the deep end, in other words, the bible of anything), should be read more than once if the aim is to get the most of it。 Don't think I'm a fan of this。 For an analogy outside programming, I consider one of the scourges of journalism (or any writing) that unfortunately too familiar style that goes in concentric circles (perhaps exemplified by BBC writers, among the worse perpetrators from all the stuff I read)。 First the catchy misleading headline, then a slightly bigger headline, then a small summary, then a bigger summary, and somewhere in the middle of the page or even further down, the story begins again in more detail, but it's incomplete even there as it repeats most of the above, yet inexplicably omits some of the earlier parts。 But for a complex topic that you want to explore in its entirety and in all levels, and where each part is full of complexities and subtleties and interconnects with the other parts, how else can you go but in concentric circles? Yes, it's a big commitment to read this huge book two or even more times, and many may be better off with a more compact, readable book。 But it's inevitable that either the extent or the depth will be sacrificed, I don't think it's possible to get around this。 Especially as the book is serious, doesn't waste words and considering the above, it's actually rather well organized。Another common criticism is the pointless difficulty of C++ itself, its complicated and overlapping ways of doing things, its over-abundance of feature and vestigial legacies, and its inferiority to more modern languages (such as Python, or even Javascript) which are so much easier to use。 I know the following is an obvious and frequent answer from C++ fans (and in a more popular place, the type of comment that starts a flame war), but how can the argument not be undermined when the modern language itself that people are advocating is essentially a C/C++ program? (such as the most popular and stable Python or Javascript implementations)。 OK, there are historical reasons why C/C++ compilers had a head start and are difficult to replace, but there are also many valid programming/design reasons why a language like C++ has been crucial in programs we consider essential。 。。。more

Philipp Homan

What could be more fun than reviewing a book about a programming language? Not sure it's a good idea to start with C++ as your first language but that's what I did (or was forced to do back in 2000 when studying CS)。 I remember finding it difficult to fully grasp the benefits of object oriented programming so it might have been good to start with a procedural language such as ANSI C。 The book itself is well written but (not surprisingly) stackoverflow。com is what I consult these days when I have What could be more fun than reviewing a book about a programming language? Not sure it's a good idea to start with C++ as your first language but that's what I did (or was forced to do back in 2000 when studying CS)。 I remember finding it difficult to fully grasp the benefits of object oriented programming so it might have been good to start with a procedural language such as ANSI C。 The book itself is well written but (not surprisingly) stackoverflow。com is what I consult these days when I have a programming question。 。。。more

Codepoetz

I read the first edition of this book many years ago and generally hated it。 This month, I read the "Special Edition" hoping that Stroustrup had improved the book, but alas, I was disappointed once again。 In general, I find that very talented computer scientists are very poor authors, and Stroustrup is no exception。 I read the first edition of this book many years ago and generally hated it。 This month, I read the "Special Edition" hoping that Stroustrup had improved the book, but alas, I was disappointed once again。 In general, I find that very talented computer scientists are very poor authors, and Stroustrup is no exception。 。。。more

Lielle Schmid

to learn how to create program

D

Добра като за справочник, свръх неподходяща за учащи се。

Nguyen Son

Well-structured, well-written。 And the best part of it is that it was written by C++ creator

Gert-Jan

A great book。 I remember, coming from a BASIC/Pascal/C background, this book and this language were "a whole different ballgame"。 A great book。 I remember, coming from a BASIC/Pascal/C background, this book and this language were "a whole different ballgame"。 。。。more

Justin Smith

C++ is definitely harder than Java

Michael Finocchiaro

Honestly, I kind of detest C++ as a language - too easy to write shitty code, too easy to lose pointers and leak memory, and it was kind of a hack to force object oriented programming onto C。 All that being said, this is the C++ Bible by Stroustrup and had a vast impact on computing in the 90s and 2000s before Java and its many children and inspired cousins took over。 Highly readable (for a geek computer language book), it is a nerd classic。

Peter Roberts

Well that was a journey。So long。

Gabrielam13

O excelentă introducere în programare。 Spun ”programare” și nu ”C++” pentru că Stroustrup aceasta își propune să facă: să transmită niște principii de programare folosindu-se ca instrument de limbajul creat de el, C++。 Însă cunoștințele transmise se pot aplica oricărui limbaj orientat pe obiecte。 De asemenea, intenționat am ales adjectivul ”excelentă” pentru că modalitatea prin care sunt prezentate noțiunile de programare este una foarte bine structurată, clară și pragmatică。 Folosindu-se de div O excelentă introducere în programare。 Spun ”programare” și nu ”C++” pentru că Stroustrup aceasta își propune să facă: să transmită niște principii de programare folosindu-se ca instrument de limbajul creat de el, C++。 Însă cunoștințele transmise se pot aplica oricărui limbaj orientat pe obiecte。 De asemenea, intenționat am ales adjectivul ”excelentă” pentru că modalitatea prin care sunt prezentate noțiunile de programare este una foarte bine structurată, clară și pragmatică。 Folosindu-se de diverse aplicații pentru a rezolva niște necesități de ordin practic, Stroustrup introduce treptat învățăceii în lumea C++ și a gândirii de programator。 La final de capitol găsim exerciții, noțiunile centrale din capitol și o evaluare a celor învățate, lucruri care din punct de vedere pedagogic sunt foarte bine gândite și ajută la întipărirea cunoștințelor pe termen lung。 Cred că odată parcursă cu atenție și fără a sări peste exerciții (așa cum am făcut eu。。。), cititorul se va putea declara mulțumit。 Recomand cu entuziasm ! 。。。more

Starless

The book is rushed, unclear in many points。 It's a difficult read about a difficult language。 The problem isn't too much technicallity。 The author fails several times (countless times) in defining a concept before using it。 And when a concept is defined, it is done so using obscure terms only。 The author should provide the official technical definition, along with a more accessible one。The sample code is much harder to read at first glance than it should。 The author has no idea of basic concepts The book is rushed, unclear in many points。 It's a difficult read about a difficult language。 The problem isn't too much technicallity。 The author fails several times (countless times) in defining a concept before using it。 And when a concept is defined, it is done so using obscure terms only。 The author should provide the official technical definition, along with a more accessible one。The sample code is much harder to read at first glance than it should。 The author has no idea of basic concepts of readability, using names as descriptive as "v" and "vv" in the same scope。The author also fails to contextualize any example he gives, sticking to abstractions only, which makes the book even less useful。 It's one of those books that sometimes you have to go back and read several sections again to try to comprehend what's being said。There's no excuse to write a book this bad and obscure。 A funny thought comes to my mind regarding how complex and esoteric C++ is。 Well, read this book and you'll understand why: the mind of Dr。 Stroustrup is a mess。 。。。more

Strong Extraordinary Dreams

[I am only going to include 10 tech books, a represtative sample]A fundamental book。 Rather than read any of the 100's of 'how to C++', I read this instead。 [I am only going to include 10 tech books, a represtative sample]A fundamental book。 Rather than read any of the 100's of 'how to C++', I read this instead。 。。。more