Nine open source books that must be viewed by C ++ for efficient programming
GuideBooks are subjective and private, and programming books are no exception. However, regardless of the style, focus, or rhythm of C ++ programming books, a good book can always lead readers through a fascinating journey and reveal the programming language capabilities, it also shows readers how to use programming languages to implement various things.
Sharing is a virtue. I have carefully selected nine high-quality C ++ books worth reading. These books are published based on open source protocols. Before that, I will give a brief introduction to C ++.
C ++ was designed by Bjarne Stroustrup and released in 1983 for the first time. It is a static type, free format, multi-paradigm, portable, compiled generic programming language. It is considered to be an intermediate language and includes features of both advanced and elementary programming languages. C ++ is designed to implement system-level and application programming. It extends the C programming language, so it uses the auto-incrementing operator ++ in its name.
C ++ is still a popular programming language. For example, it is widely used in embedded systems, banking and communications. As a superset of C, it retains C's iconic conciseness and efficiency. It also provides strong type checks, multi-inheritance, data abstraction, overload of Exception Handling Operators, and generic programming, and object-oriented programming. C ++ not only affects the development of C language, but also affects many other programming languages including C # and Java.
《Boost C ++ class libraryThe Boost C ++ Libraries"Author Boris schäling (pp. 570)
《Boost C ++ class libraryThe Boost C ++ LibrariesIs considered to be extremely important in the C ++ world and have a profound impact. These portable libraries in the book provide support for a variety of tasks and structures, including multithreading, containers, string and text processing, iterator, linear algebra, pseudo-random number generation, meta-program design template, concurrent program design, data structure, image processing, regular expression and unit testing. Boost can work on almost all modern operating systems, including Linux and Windows and their derivatives, and supports most modern compilers.
This book introduces 72 Boost libraries and provides a wide range of practical functions. They help programmers manage memory and process strings more easily. These libraries provide a variety of containers and other data structures to expand the standard library. Using these libraries, you can easily implement platform-independent network applications.
This book is a pearl worth adding to various collections. The 430 source code examples vividly illustrate the functions of these libraries.
The previous sections of this book examine memory management, string processing, containers, data structures, algorithms, communications, files and streams, and time. The subsequent sections further explore functional programming, parallel programming, and generic programming. It covers most of the content of language extensions, error and digital processing, application libraries, design patterns, and other libraries.
This book uses the Knowledge Sharing signature-non-commercial use-to prohibit the deduction of the 4.0 international license agreement. If you like entity books, you can purchase paper books on Amazon, or choose ebook in the kindle, E-book, or pd f format.
《C ++ commentsC ++ Annotations"Author Frank B. Brokken (pp., 1029)
《C ++ commentsC ++ AnnotationsProvides a comprehensive tutorial on the C ++ programming language. It can be used as a textbook for C ++ courses. This book is intended for users who have knowledge of C language or other Class C syntax.
The main chapters of this book include:
- Namespace
- String -- C provides the most basic String Support
- I/O Stream library-provides a class-based input/output Library
- Class -- C provides two methods for structuring different types of data. The C-language struct contains multiple types of data members, while the C-language structShared bodyUnionYou can also define different types of data members. The class introduced in this chapter is also a struct, but its content is inaccessible to the external world by default.
- Static Data and functions
- Memory Management-examine the operators that can operate on Memory Allocation in C ++
- Exception-allow the C ++ program to execute controlled non-local return commands, avoiding the defect of using longjmp (non-local jump) and setjmp (activating non-local jump) functions.
- Operator overloading-General Operator Overloading
- Abstract container
- Inherit-another derived feature. This chapter demonstrates that the base class pointer may be used to point to the object of the derived class.
- Polymorphism-a special form of Inheritance
- Youyuan mechanism-introduces the keywords of friend and Its Usage principles
- Member pointer-define the member pointer and its usage, static member pointer, pointer Length
- Nested class -- used when the nested class has a close conceptual relationship with its peripheral class
- Standard Template Library (STL)-a common library that contains containers, general algorithms, iterators, function objects, splitters, adapters, and data structures. The data structures used by these algorithms are abstract, so the algorithms can actually use any data type.
- Generic algorithms-covering generic algorithms in the standard template library
- Function template-explores the unique syntax of the template. This section describes the concepts of template type parameters and non-type parameters and function templates, and provides multiple templates.
- Class template -- Discuss building and using class templates
- Advanced template usage-a brief introduction to the key features of template meta-programming and the subtle relationship between templates
This book contains HTML, PDF, PostScript, and txt versions. It can be freely distributed and released based on the gnu gpl protocol.
《Understand the design mode through C ++ and Qt4An Introduction to Design Patterns in C ++ with Qt 4"Author Alan Ezust, Paul Ezust (pp., 656)
《Understand the design mode through C ++ and Qt4An Introduction to Design Patterns in C ++ with Qt 4This section describes the basic knowledge of C ++, object-oriented concepts, UML (Unified Modeling Language), and core Qt classes. Then we turn to more advanced programming concepts such as Qt modules and design patterns. Finally, it strictly confirms important C ++ features. It provides excellent explanations of functions, inheritance, and polymorphism.
This book does not require any experience in C or C ++ programming and is designed for universal use. It also prepares Qt cases, exercises, answers, and course PPT for instructors.
This book is part of Bruce Perens's open-source series. All books in this series are published based on Open Publication License V1.0 and later versions.
《Think like a computer scientist: C ++How to Think Like a Computer Scientist: C ++"Author Allen B. Downey (pp., 191)
《Think like a computer scientist: C ++How to Think Like a Computer Scientist: C ++Is a concise and friendly introductory book on Software Design Using C ++ programming language. This book aims to train readers without programming experience into future developers by explaining the most basic concepts and gradually adding new content at an acceptable pace.
The valuable content provided in this book includes:
- Variables, expressions, and statements
- Function
- Conditional statements and Recursion
- Rich Functions
- Iteration
- String
- Vector
- Member Functions
- Object Vector
- Vector object
- Class and invariant
- File input and output and apmatrixes
This book is a free book published under the "knowledge sharing signature-non-commercial use-3.0" non-localized version agreement.
《C ++ Qt3 graphical interface programmingC ++ GUI Programming with Qt 3"Author Jasmin Blanchette, Mark Summerfield (pp. 464)
The latest stable Qt version is 5.8 《C ++ Qt3 graphical interface programmingC ++ GUI Programming with Qt 3Guide readers on how to use Qt3 to write GUI programs. The last update of Qt3 was in December 2004, but this book still has a majority of content for Qt4 and Qt5.
This book is not a book intended for beginners and requires readers to have a basic understanding of C ++.
This book introduces readers to all the concepts and required exercises for GUI application programming using Qt. This book not only describes the core content in detail, but also provides some special and advanced learning materials.
This book is part of Bruce Perens's open-source series. All books in this series are published based on Open Publication License V1.0 and later versions.
《Open Data Structure (C ++ Edition)Open Data Structures (in C ++)"Author Pat Morin (pp. 336)
《Open Data Structure (C ++ Edition)Open Data Structures (in C ++)It teaches readers how to design and analyze basic data structures and how to use C ++ for implementation. It covers the analysis and implementation of the following data structures: sequence (list), queue, priority queue, unordered dictionary, ordered dictionary, and graph. The author intends to provide a free way for students in computer science to learn the data structure, but does not intend to become a book introducing the C ++ programming language or C ++ standard template library. However, it helps programmers understand how the data structure of the standard template library is implemented and why it is so efficient.
This section covers array-based lists, linked lists, hierarchical linked lists, hash tables, and Binary Trees (including random binary search trees, scapegoat trees, and red/black trees ). The subsequent sections also include heap, sorting algorithm (comparison, counting, and base sorting), graph, integer data structure, and external memory search.
This book is published based on the Knowledge Sharing signature protocol. Free HTML and PDF are released. The LaTeX version and Java/C ++/Python source code of this book can be downloaded from GitHub. There are also versions of paper books available for purchase. This book has been translated into sloynia and Turkish.
《Use wxWidgets for cross-platform GUI ProgrammingCross-Platform GUI Programming with wxWidgets"Author: Julian Smart, Kevin Hock and Stefan CsomorBrifll (pp., 744)
WxWidgets is a popular C ++ library that allows developers to create applications on javassw, Mac OS, Linux, and other platforms using a single code basis. It supports a wide range of image processing libraries.
This book 《Use wxWidgets for cross-platform GUI ProgrammingCross-Platform GUI Programming with wxWidgetsThis document begins with a brief introduction and chapters. The main content includes:
- Event Processing
- Window Basics
- Drawing
- Input event processing
- Use sizers for window layout
- Use standard dialog box
- Create custom dialog box
- Image Programming
- Clipboard and drag-and-drop
- High-order window class
- Files and data streams
- Memory Management, debugging, and error check
- Compile international applications
- Write multi-threaded applications
- WxSocket Programming
- Process documents and views
- Sun Zhen perfect your application
This book is part of Bruce Perens's open-source series. All books in this series are published based on Open Publication License V1.0 and later versions.
《Rook C ++ GuideThe Rook's Guide to C ++"Author Jeremy Hansen (pp. 160)
《Rook C ++ GuideThe Rook's Guide to C ++It contains variables, constants, input and output, data types and transformations, and conditional judgment statements (if, else, else if, and switch statements), String, loop, array, block, function, and scope. The subsequent sections focus on solving and locating problems, including pre-processors, advanced algebra, file input and output, pointers, dynamic data, classes and abstractions, separated compilation, and standard template libraries.
Most of the books are written by 25 Norwich University students at a hackathon weekend. Of course I dare not say that there is no defect, but it is still a very good book. It is published based on the Knowledge Sharing signature-non-commercial use-share the 3.0 non-localized version protocol in the same way. At the same time, Amazon also has a paper version of this book available for purchase.
《Introduction to GCCAn Introduction to GCC"Brian Gough (pp. 144)
《Introduction to GCCAn Introduction to GCCIt also introduces gnu c and C ++ compilers: GCC and g ++, which both belong to the GNU Compiler set (gcc ).
This book explains how to use compilers independently. After several years of observation on the Issues posted in the email list, the author writes this book to direct readers to the most important part of GCC.
Chapter introduction:
- Introduction
- Compile a C program -- describes how to use gcc to compile a C program. The program may be compiled from a single file or multiple files, or the system library and header file may be used.
- Compile option-describes the frequently used options in the gcc compiler. These options can modify the local library and the search path containing files, configure additional warning and debugging information, macro commands of the Preprocessor, and C dialect.
- Use preprocessing-describes the usage of the gnu c preprocessing cpp program in the GCC package. Preprocessing expands the macro definition before the source code is compiled. Preprocessing is automatically called when GCC compiles C or C ++ programs.
- Compile for debugging-provide the-g option to store additional debugging information in the target and executable files. When an error occurs, the debugging information allows you to trace the specific machine commands back to the corresponding lines in the source code.
- Optimized Compilation -- GCC is an optimized compiler. It provides a large number of options to speed up the generated executable files and minimize the size of the executable files.
- Compile a C ++ program -- describes how to use GCC to compile a program written in C ++ and the command line options specific to this language.
- Platform-related options-describes the options available on some general platforms, such as Intel and AMD x86 options, x86 expansion options, x86 64-bit processor options, DEC Alpha options, iSCSI options, POWER/powerPC options, composite architecture support, and floating point related issues.
- Problem locating-GCC provides several help and diagnostic options to help you locate problems during compilation.
- Compiler tools-describes a large number of tools that can be used in combination with GCC. Including the GNU zip ar used to create the library, as well as the GNU performance and coverage testing tools: gprof and gcov.
- How the compiler works -- describes more details about how GCC converts source code to executable programs. Compiling is a multi-level process involving multiple tools, including the GNU Compiler itself (through the gcc or g ++ front-end), the GNU Compiler as, and the GNU linker ld. A complete set of tools in the compilation process is called a tool chain.
- Check compiled files-describes a variety of useful tools to check the content of executable and target files.
- Common error message-describes the most common errors and warnings generated by gcc and g ++. Each case is accompanied by the cause of errors and warnings, corresponding examples, and possible suggestions for solving the problem.
- Get help-if the reader encounters issues that are not covered in this book, there are also a variety of reference manuals that detail topics related to GCC and programming languages.
This book is published based on the GNU Free Documentation protocol.
In addition, some C ++ books can be downloaded for free, but those are not published based on open source protocols, or the author does not specify a protocol. Such books include:
- Thinking in C ++, Version 2, Volume 1, Volume 2-author Bruce Eckel (Volume 2 author added Chuck Allison)
- C ++ In Action: Industrial Strength Programming-author Bartosz Milewski
Finally, my advice for beginners of C ++ must beProgramming principles and experience (C ++ Edition)Programming-Principles and Practice Using C ++(Version 2 ). It is generally believed that this is the most appropriate entry-level book, written by the founder of C ++, and worth the money.
Via: https://www.ossblog.org/master-c-programming-with-open-source-books/
Author: Steve Emms Translator: xiaow6 Proofreader: wxy
This article was originally compiled by LCTT and launched with the honor of Linux in China
From: https://linux.cn/article-8250-1.html
Address: http://www.linuxprobe.com/study-programme.html