The Definitive C Book Guide and List

0 votes
This question aims to find the few gems amid the dozens of terrible C++ books that are released each year.

Unlike many other programming languages, which can easily be learned on the fly via online tutorials, few people can fast learn C++ without first studying a well-written C++ book. It's far too huge and complicated for this. It's so huge and sophisticated, in fact, that there are a lot of terrible C++ books out there. And we're not talking about bad taste here; we're talking about things like displaying major factual inaccuracies and promoting dreadful programming approaches.

Provide quality books with their skills levels.
May 31, 2022 in C++ by rajiv
• 1,620 points
498 views

1 answer to this question.

0 votes

For Beginner (includes those without coding experience)

Programming: Principles and Practice Using C++, Bjarne Stroustrup, 2nd Edition - May 25, 2014 (updated for C++11/C++14)

C++ Primer, Stanley Lippman, Josée Lajoie, and Barbara E. Moo (updated for C++11)

Intermediate level

More Effective C++ Scott Meyers

More Exceptional C++ Herb Sutter

C++ Coding Standards Herb Sutter and Andrei Alexandrescu

C++ Templates: The Complete Guide David Vandevoorde and Nicolai M. Josuttis

C++ 20 - The Complete Guide Nicolai M. Josuttis

Functional Programming in C++ Ivan Čukić

C++ in Action Bartosz Milewski

Expert level

Modern C++ Design Andrei Alexandrescu

Large Scale C++ volume I, Process and architecture (2020) John Lakos

Advanced C++ Metaprogramming Davide Di Gennaro

C++ Concurrency In Action Anthony Williams

C++ Template Metaprogramming David Abrahams and Aleksey Gurtovo

answered Jun 6, 2022 by pranav
• 2,590 points

Related Questions In C++

0 votes
0 answers

What is the difference between std::list<std::pair> and std::map in C++ STL?

What distinguishes std::list<std::pair> from std::map? Does the ...READ MORE

Aug 17, 2022 in C++ by Nicholas
• 7,760 points
274 views
0 votes
1 answer

C++ code file extension? What is the difference between .cc and .cpp [closed]

GNU GCC recognizes all of the following ...READ MORE

answered Jun 21, 2022 in C++ by Damon
• 4,960 points
1,188 views
0 votes
1 answer

The static keyword and its various uses in C++

Static variables exist during the "lifetime" of the translation unit in which they are declared, and: It cannot be accessible from any other translation unit if it is in a namespace scope (i.e. outside of functions and classes).  This is referred to as "internal linking" or "static storage lifetime."  (Except for constexpr, do not do this in headers; otherwise, you would wind up with a different variable in each translation unit, which is really confusing.) If it is a variable in a function, it, like any other local variable, cannot be accessed from outside the function.  (This is the mentioned local) Class members have no limited scope owing to static, but they may be referenced from both the class and an instance (like std::string::npos). locations as code: static std::string namespaceScope = "Hello"; void ...READ MORE

answered Jun 27, 2022 in C++ by Damon
• 4,960 points
290 views
0 votes
1 answer

What is the difference between public, private, and protected inheritance in C++?

To begin answering that question, let me characterise member accessors in my own terms.  If you already know this, proceed to the section "next:". I'm aware of three types of accessors: public, protected, and private. Let: class Base { public: ...READ MORE

answered Jul 11, 2022 in C++ by Damon
• 4,960 points
557 views
0 votes
0 answers

Difference between for loop and the range based loop in C++

The distinction between a for loop and ...READ MORE

Jul 11, 2022 in C++ by Nicholas
• 7,760 points
409 views
0 votes
0 answers

What is the difference between Java and C++?

What is the difference between Java and ...READ MORE

Jul 22, 2022 in C++ by Nicholas
• 7,760 points
243 views
0 votes
1 answer

What is this weird colon-member (" : ") syntax in the constructor?

Foo(int num): bar(num) In C++, this is known as a Member Initializer List. Simply put, it sets the value of your member bar to num. There is a significant difference between initializing a member with the Member initializer list and assigning a value to it within the function Object() { [native code] } body. When you use the Member initializer list to initialise fields, the constructors are only called once, and the object is constructed and initialised in a single operation. If you use assignment, the fields will be initialised with default constructors and then reassigned with actual values (via the assignment operator). As you can see, there is an extra overhead of creation and assignment in the latter, which may be significant for user defined classes. Cost of Member Initialization =Object ...READ MORE

answered May 27, 2022 in Others by Damon
• 4,960 points
1,099 views
0 votes
1 answer

Why is "using namespace std;" considered bad practice?

This has nothing to do with performan ...READ MORE

answered Jun 1, 2022 in C++ by Damon
• 4,960 points
632 views
0 votes
1 answer

What is a smart pointer and when should I use one?

A smart pointer is similar to a ...READ MORE

answered Jun 2, 2022 in C++ by Damon
• 4,960 points
267 views
0 votes
1 answer

The Definitive C++ Book Guide and List

Introductory, no previous programming experience Book Author(s) Description review C++ Primer* * Not ...READ MORE

answered Jun 14, 2022 in C++ by Damon
• 4,960 points
483 views
webinar REGISTER FOR FREE WEBINAR X
REGISTER NOW
webinar_success Thank you for registering Join Edureka Meetup community for 100+ Free Webinars each month JOIN MEETUP GROUP