C + + learning books recommended

Source: Internet
Author: User
Tags coding standards readable

Copyright belongs to the author.
Commercial reprint please contact the author for authorization, non-commercial reprint please specify the source.
Links: https://www.zhihu.com/question/20410487/answer/15055637
Source: Know

Stage 1
"Essential C + +": http://download.csdn.net/detail/jerryjbiao/4144693
This is a little but practical introduction to C + + books, emphasizing the quick start and understanding of C + + programming. This book focuses on a series of increasingly complex procedural questions, as well as the language features used to solve these problems. You learn not only the functions and structures of C + +, but also the purpose and rationale of their design.
"C + + Primer"
This book is a comprehensive and authoritative description of C + + basic concepts, techniques, and modern C + + programming styles, and is the best guide for beginners in C + +. This book helps you write practical programs without having to master every detail of the language first. For senior programmers, this book is also an indispensable reference.
Stage 2
"Effective C + +" and "more effective C + +"
The author is Scott Meyers. You should familiarize yourself with them and understand each project clearly. The book revolves around 55 guidelines, each of which introduces a way for you to write better C + + program code, which is discussed in detail in specially designed examples.
"Exceptional C + + (C + + programming Anatomy)" and "more exceptional C + +"
Both of these books contain 40 C + + programming problems that will allow you to hone your skills and eventually become a good C + + programmer. These issues are carefully selected by Herb Sutter, consistent with the Iso/ansi C + + official standards, to help programmers maintain a good style in their design, architecture, and coding process, making the written C + + software more robust and efficient.
Stage 3
Inside the C + + object model (Deep Exploration of C + + objects models)
This book focuses on the underlying mechanisms of C + + object-oriented programming, including structured semantics, generation of temporary objects, encapsulation, inheritance, and virtual-virtual functions and virtual inheritance to help you understand the underlying implementation of the program in order to write more efficient code.
the design and evolution of C + + (Designing and evolution of C + + language)
The author of the book is also the C + + language designer Bjarne Stroustrup, the author in the book comprehensively introduced the development history of C + +, the essential meaning and design background of various important mechanisms in C + +, the basic use and use of these mechanisms, discussed the C + + The appropriate application areas and their future development prospects have not overlooked the critical details and are not too bogged down in technical details.
Stage 4
"The C + + standard library"
This is the Standard Template Library dictionary, you can find all the STL related knowledge in this book. This book focuses on standard template libraries, inspection containers, iterators, function objects, and STL algorithms. Each element has a profound presentation, including its introduction, design, application examples, detailed explanations, pitfalls, unexpected hazards, and related categories and functions.
"Effective STL"
This is Scott Meyers's third C + + monograph, and the most authoritative book for learning STL. The author makes a detailed analysis of the 50 guidelines in the book, with examples. These rules enable C + + developers to maximize the use of STL.
"Generic Programming and the STL (Generic Programming and STL)"
This book describes the core concepts of generic programming: Concepts (concept), modeling (model), and refinement (improvement), and shows you how these concepts derive the basic concepts of STL: Iterators (iterators), Containers (container) and Function objects (functions object). As described in this book, you can think of STL as a library of concepts that you will learn about the formal structure of STL and understand its powerful advantages.
Stage 5
"Exceptional C + + style"
The author is Herb Sutter. The book also presents 40 C + + style-related issues, provides new insights into some of the critical C + + details and interrelationships that provide new strategies for today's key C + + programming technologies, such as generics programming, STL, exception security, etc., to help developers between overhead and functionality, elegance and maintainability, Find the perfect balance between flexibility and excess flexibility.
"C + + template"
This is a complete reference manual and tutorial on C + + templates that emphasizes the use of templates and includes examples from the real world. Every C + + programmer should read this book well.
"Modern C + + design (modern C + + designs)"
Author Andrei Alexandrescu opened a new situation for C + + programmers. This book provides cutting-edge approaches to software design, such as federated design patterns, generic programming, and enables programmers to write expressive, flexible, highly reusable code.
"Thinking in C + + (C + + programming Idea)"
The authoritative works of C + +, introduced the practical programming technology and best practice method of C + +. *************************************************************************************************************** Transfer from http://www.cnblogs.com/cutepig/archive/2009/02/26/1399032.html(i) Language introduction:
C + +Primer "
The latest version: the third edition (the fourth edition of the foreign shelves, some domestic online bookstores are also in the booking)
Suitable for having rich C experience, lack of C + +Experience. But personally I have always thought that this book with a strong C-language traces, for C + +Learning is not necessarily a good thing.

The C + +Programming Language "/" C + +Language of programming
Latest Version: Third Edition special edition
Abbreviation T C + +PL, with extensive experience in other languages. (It is also known as "tcpl", but it needs to be distinguished from another "the C Programmer Language")

The Essential C + +
The accelerated C + +
These two are thin and are good choices. The accelerated C + +"I have not read it, judging from all aspects of the evaluation, it is totally worth Recommended

The above several books have the corresponding Chinese version, and the quality of translation is good. The above books may not all need to be read over, but anyway, T C + +PL is supposed to be read.

(b) Advanced A:
This route focuses on the language itself

The effective C + +
The latest Version: Second Edition (the third version of the foreign shelves, some domestic online bookstores are also in the booking)
Referred to as EC. C + +Programmers must read! Many times, we say C + +The Bible does not mean T C + +PL, but this one. The book "The Pragmatic Programmer" writes: "Once you find yourself involved C + +Project development, run (don't go) to the bookstore to buy Scott Mayer's "effective C + +"More effective, perhaps." C + +》”。

C + +Coding standards:101 rules, guidelines, and best practices "/" C + +Code of programming
Personally believe that the book should be C + +The programmer must have a desk book. Almost effective series and exceptional series are summarized here. The latest templates, unusual industry experience are here to reflect. The only possible flaw is that for a novice, the question of "Why do this" is not explained enough.
My view is: If you do not understand the terms, memory, and do, if you understand the terms, I guess you will agree with the view of the book. I think the contents of this book will not go out of date until at least 2009, and people will be widely read about the 101 commandments it has set.
Still don't know his abbreviation, perhaps "101" will become a candidate?

Referring to the effective C + +", then another three books one by one surfaced:
"More effective C + +
The exceptional C + +
"More exceptional C + +》。
New book "Exceptional C + +Style "is also a good book worth reading.
None of the above books should be spared.
Personal advice above BooksRead them sequentially. and read these books over and over again in the future.

(c) Advanced B:
This route focuses on the library.

The C + +Standard Library "/" C + +Standard Program Library-self-study tutorials and reference manuals
Have you ever heard of STL? This book teaches you the most basic, and most important, use of STL. This book should be a must-read.

"Effective STL"
The use of STL is not enough, you must also know when to choose what STL components, this is the STL use must read.

Generic programming and the stl:using and extending the C + +Standard Template Library/generic programming and STL.
This book is more theoretical, but really rigorous, and not very difficult to understand. It would be very important to understand the interpretation of concept.

C + +STL "
This is not about using the library, but about how the library is implemented. The stomach is bad, need to absorb slowly.

The book of this course is still recommended in order to read.
Advanced A, Advanced B two routes should be parallel.

Other advanced Reference Books
To raise these reference books, only to avoid controversy, but also to broaden the horizons, I did not read all the full.

The Thinking in C + +》/《 C + +The idea of programming
The book and its Chinese version of the rumors are good or bad, have not looked carefully, do not evaluate, if there is interest, may wish to try the book.

The following books are basically about language itself and can be read in the following order.

C + +Must know will be
If one year earlier, this book would be heavyweight, however it was 101 and the exceptional C + +Style "cover a side.

C + +Gotchas:avoiding Common problems in Coding and Design "/" C + +Programming Trap "
This is another book that I have never read, and is well received.

"STL Source Code Analysis"
When I got the book, I was "borrowed" so far that I had not seen it. The friend who has read this book can give a proper evaluation.

The Design and Evolution of C + +》/《 C + +Design and evolution of the language side
Short of d&e, the content is not difficult, Bjarne book, only this, it is worth reading.
Some time ago, the interactive network has 8 yuan A (RMB) sale of this book, now seems to be gone.

The Inside C + +Object Model/Depth of exploration C + +Object Model "
C programmers will feel after reading C + +The original is not mysterious.

C + +Template "
Before reading the source code of STL, boost or Loki, please read this book carefully, it can alleviate some of the trouble of Reading. This book is a discussion C + +The authority of the template.

The modern C + +Design Generic programming and Design Patterns applied "/" C + +New thinking of design--application of generic programming and design pattern
Referred to as MCD. Before reading MCD, it is recommended that you read the C + +Template ".

Object disclosure: Java, Eiffel, and C + +
you to C + +Are you dissatisfied? This book can partially help you to accomplish your complaint goals. Maybe it can also make you not superstitious. C + +

Finally, a copy of the C + +Standard documents should also be chewed.
There are some Books, and cannot be simply attributed to C + +, but also difficult to master in the Pure Book study. This is the book "Design Patterns"/"Designing Mode".

All of the above Books, or talk about C + +The language itself, either talking about STL or both (of course, strictly speaking STL is C + +A very important part of the language). Occasionally, articles in some books may also involve practical works. These books are not C + +Software development is all, but they are important. Reading these books does not necessarily require a lot of energy, sometimes it can be difficult, but sometimes it can be very fast.
Finally, programming language is not the whole of computer science and technology, especially for students in school, lay a good foundation, broaden the field of vision is very important.

the upcoming classic "C + + Template metaprogramming" open chapters translation and Http://blog.csdn.net/pongba/category/39865.aspx

Classics after the Classics
--written in the history of C + + book publishing, before the advent of another classic
Liu Weipeng (Pongba)/Wen

C + + Book world is quiet long!

At least that's what I think. I have witnessed the introduction of the first batch of C + + classic books in China. Feel really "suddenly like a night spring breeze, thousand trees million pear blossom open." Don't get me wrong, this first batch is not a classic in the classic "C + + programming Language", "C + + Primer". It is to say "exceptional C + +" "more exceptional C + +" Effective&more effective C + + Gotchas "Generic programming and the STL, "the C + + standard Library", "C + + Templates", "Morden C + + Design". "Modern C + + Design" is one of the most exciting works. Learning generics without reading the book is like learning algorithms that do not read D.E's "The Art of Compute programming vol.1.2.3", unable to reach a higher level. I only remember getting this book from 9 o'clock in the morning to see the night 22 o'clock, two meals are not eaten, intoxicated. Because this book is too classic, but also too avant-garde, so I read in the heart secretly made a conclusion "C + + book industry will not appear such an exciting book for a long time." Sure enough, later out of some such as "Accelerate C + +" "Applied C + +" "C + + Network programming vol.1.2" and so on, although also into the classic column, but after all, there is no very exciting content.

However, the development of C + + generic technology has not stopped, and the constant updating of the boost library has gradually pushed C + + generics technology to a new peak, originally in the modern C + + Design Some of the avant-garde some of the academy's technology to the boost library finally and practice tightly together, the abstract nature of generics to play its amazing power, so the boost library has a high degree of reusability and customization of generic components. Generics are finally getting closer to the programmer's life through the boost library.

If the C + + generic is the Sun monkey under the five elements of the mountain, then the "modern C + + Design" opened the mountain Seal, released the powerful power of the monkey, and the boost library is the Monkey King on the head of the golden Hoop, bound and guide it to the right direction to do the right thing. Although there is this golden hoop, but its strength is not weakened, or even stronger, but in the grinding off the edges and corners of the maturing at the same time.

However, although the boost library is ubiquitous with sophisticated generic applications, it can be said to be a source code textbook, as the Linux source code with the programmer, but "no 323, don't think of Liangshan", not everyone can read their source code, Even a programmer familiar with generics will get lost in it. This is because the boost library can be compiled for most of the mainstream compilers, do a lot of workaround, and, in order to save code, the boost library is ubiquitous in large tracts of macro, these macros like a maze, source code maze. These two reasons make boost source code less readable.

Therefore, although the boost library is close to the programmer, the source code of the boost library is getting farther away from the programmer.

However, in the C + + generics field has been presenting illegal weapons, to further, a glimpse of the tidbits have to read the classic source such as boost can not. "300 of Tang poetry, will not recite poetry will also be yin."

Although the source code of the boost library is less readable, it is not very poor, and if someone has given you a thorough explanation of the generic usage and design concepts in the Boost library, you will certainly be well-versed in reading.

That's it--a forthcoming classic, co-authored by one of the initiators of boost, David Abraham, a member of the C + + Standards committee, and another boost member, Aleksey Gurtovoy, the C + + Template Metaprogramming:concepts,tools,and techniques from Boost and Beyond ".

For a book that is bound to be a classic, I am really anxiety to comment on it, or to cite one of the words on its homepage:

This book on C + + template meta-programming will give C + + users unprecedented power and make this technology a truly practical technology in the hands of programmers.

This book covers C + + Template metaprogramming in A-a-provides unprecedented capability to the C + + Power-user, and D Elivers practical metaprogramming into the hands of the everyday programmer.

All along, C + + generics seem to always be in a strange position, some people say it is too academic school, some people think that it is too far away, and now it is not used, some people think that is the library of the designer of things, and the programmer is not very related. More people hold the attitude of "dare not Gao Pan". In fact, these are the wrong attitude, generics is a long-standing idea, its core philosophy is abstract, and there is no mystery. Compared to object-oriented binary multiplexing, generic code provides a source-level reuse, a more dynamic feature, a stronger type security and efficiency, and a complementary ability to maximize power. Many of the classic books that have been published about C + + generics are well-described. Just about C + + generics, there is a technology that can be independent-template meta-programming. This is precisely the technology that makes the generic component more expressive and free of freedom. It can even be said to be one of the cornerstones of the boost library (except for parts such as regex that are not strongly dependent on generics). So it is obvious that this is a very important technique, as can be seen in the book "Generative Programming".

However, for the technology that can be independently out of the present, we see only a few sporadic descriptions, "C + + Templates" inside, although a whole chapter describes Metaprogram, but for the thirst for knowledge is still like ineffective, can not enjoy. However, this situation is almost over, "C + + template metaprogramming" will be the system of the C + + templates meta-programming technology, the original is only the master of the hands of the mysterious technology to the hands of ordinary programmers, to give ordinary programmers amazing power.

If modern C + + Design is the classic of a C + + generic book (it is), then this forthcoming "C + + Template metaprogramming" will be the classic after another classic!

The author has opened the third chapter and appendix A of the book. Although there are only two chapters, it is definitely worth reading. Here is my translation, one is out of my own interest, the second is to facilitate the reader.

Chapter three Deep Exploration of meta-functions


C + + learning books recommended

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.