Programming with C and Cpp (C++)

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

This is a book on C and C++. The book tries to provide many examples (over 200, yes too many) to learn practical real world C and C++. See usecases sections in both C and C++ and the example / writing your own library functions as a starting point to experience complex programming technique and very rare and tough problems in software engineering (such as asynchronous programming, frameworks, message passing between threads, memory management) and real world coding practises. Usecases also cover frameworks such as, Data structures in C (LinkedLists, Circular Lists, Stacks, Queues, Hash tables, Ring buffers) Thread pools. Searching (Bubble, Insertion, Quick, Merge..) and Sort (Linear, Binary) algorithms written in C++. Design patterns (Singleton, Builder, Factory, Facade, Adaptor). Caches (LRU).

Author(s): Devendra Naga
Publisher: Independently published
Year: 2023

Language: English
Pages: 363

Programming in C and C++
Introduction
Audience
C programming
Basic Hello World program
Basic Data types
sizeof operator
Format Specifier
const keyword
type definition
typecasting
operators
Scope and Lifetime of the variables
Control statements
Loops
Goto statement
Arrays
Macros
Functions
Function returning local data
Variadic functions
Function like macros
inline functions
Strings
String manipulation operations
Pointers
Pass by value and Pass by reference in functions
Dynamic Memory Allocation
Double pointers
Recap about variables and scope
Function Pointers
Structures
Bit fields
Structure padding and packing
Enumeration
Unions
Appendix A
Significance of header files
Header description
Compilation of C program
GCC compilation options
Valgrind
Command line arguments (argc, argv)
File I/O
Operating with the binary files
I/O operations
Useful macros
Useful helper functions
C++ programming
Introduction
cout, cerr and cin
New operators in C++
New keywords in C++
Typecasting
Classes
Constructors and Destructors
namespaces
Overloading
Operator Overloading
Function Overloading
Exception Handling
noexcept
Standard library
std::pair
std::initializer_list
std::bitset
File streams
Arrays
Strings
Vectors
Lists
Queues
Sets
Dequeue
Maps
shared_ptr, unique_ptr
File systems
Threads
Mutexes
Conditional Variables
Derived Classes
Abstract Classes
Templates
Template overloading
Appendix B
Use cases
Design Patterns
Factory Design pattern
Singleton Design pattern
Builder Design pattern
Adapter Design pattern
Appendix C
Code organization for software development
Building large software
creating libraries
creating binaries
cmake
Data Structures
Linked Lists
Doubly Linked Lists
Circular Linked Lists
Circular Doubly Linked Lists
Stack
Queue
Ring Buffer
Tree
Merkel Trees
Hash Tables
Search and Sorting
Sorting
Bubble Sort
Insertion Sort
Quick Sort
Merge Sort
Searching
Binary search
Changelog