->

C++ Initialization Story  A Guide Through All Initialization Options and Related C++ Areas

English | 2022 | ISBN: NA | 275 Pages | PDF, EPUB | 3.8 MB


 

Initialization in C is a hot topic! The internet is full of discussions about best practices, and there are even funny memes on that subject. The situation is not surprising, as there are more than a dozen ways to initialize a simple integer value, complex rules for the auto-type deduction, data members, and object life nuances.

And here comes the book.

Throughout this text, you will learn practical options to initialize various categories of variables and data members in Modern C. More specifically, this text teaches multiple types of initialization, constructors, non-static data member initialization, inline variables, designated initializers, and more. Additionally, you’ll see the changes and new techniques from C11 to C20 and lots of examples to round out your understanding.

Learn C from the perspective of C Initialization!

The plan is to explain most (if not all) parts of initialization, learn lots of excellent C techniques, and see what happens under the hood.

The goal of this book is to equip you with the following knowledge

Explain rules about object initialization, including regular variables, data members, and non-local objects.

How to implement special member functions (constructors, destructors, copy/move operations) and when they are helpful.

How to efficiently initialize non-static data members using C11 features like non-static data member initialization, inheriting, and delegating constructors.

How to streamline working with static variables and static data members with inline variables from C17.

How to work with container-like members, non-copyable data members (like `const` data members) or move-able only data members, or even lambdas.

What is an aggregate, and how to create such objects with designated initializers from C20.

The book contains 14 chapters in the following structure

Chapters 1 to 5 create a foundation for the rest of the book. They cover basic initialization rules, constructors, destructors, and the basics of data members.

Chapter 6 is a short quiz on constructors. You can check your knowledge from the first "part" of the book.

Chapter 7 on Type deduction - auto, decltype, AAA and more.

Chapter 8 describes Non-static Data Member Initialization (NSDMI), a powerful feature from C11 that improves how we work with data members. At the end of the chapter, you can solve a few exercises.

Chapter 9 discusses how to initialize container-like data members.

Chapter 10 contains information about non-regular data members and how to handle them in a class. You'll learn about const data members, unique_ptr as a data member, and references.

Chapter 11 describes static non-local variables, static objects, various storage duration options, inline variables from C17, and constinit from C20.

Chapter 12 moves to C20 and describes Designated Initializers, a handy feature based on similar thing from the C language.

Chapter 13 shows various techniques like passing strings into constructors, strong typing, CRTP class counter, Copy and swap idiom, self-registering types more.

Chapter 14 is the final quiz with questions from the whole book.

And there are two appendices

Appendix A - a handy guide about rules for compiler-generated special member functions.

Appendix B - answers to quizzes and exercises.

Most sections are completed, but I'm still working on filling two chapters and polishing the quality.

Who is this book for?

The book is intended for bner/intermediate C programmers who want to learn various aspects of initialization in Modern C (from C11 to C20).

You should know at least some of the basics of creating and using custom classes.

This text is also helpful for experienced programmers who know older C standards and want to move into C17/C20

 

C++ Initialization Story  A Guide Through All Initialization Options and Related C++ Areas

 

 


 TO MAC USERS: If RAR password doesn't work, use this archive program: 

RAR Expander 0.8.5 Beta 4  and extract password protected files without error.


 TO WIN USERS: If RAR password doesn't work, use this archive program: 

Latest Winrar  and extract password protected files without error.


 Themelli   |  

Information
Members of Guests cannot leave comments.




rss