Written by students who passed Immediately available after payment Read online or as PDF Wrong document? Swap it for free 4.6 TrustPilot
logo-home
Summary

Summary c-plus-plus-notes-for-professionals

Rating
-
Sold
-
Pages
696
Uploaded on
07-10-2023
Written in
2023/2024

I am selling you future books (programming). I will present to you everything you will need in terms of knowledge of any programming language in the form of a book with a lot of useful information for you, and as you also know that programmers have very high salaries, I will help you to be great programmers I wish you a pleasant reading and learning.

Show more Read less
Institution
Module

Content preview

Contents
About ................................................................................................................................................................................... 1
Chapter 1: Getting started with C++ .................................................................................................................... 2
Section 1.1: Hello World ................................................................................................................................................. 2
Section 1.2: Comments .................................................................................................................................................. 3
Section 1.3: The standard C++ compilation process .................................................................................................. 5
Section 1.4: Function ...................................................................................................................................................... 5
Section 1.5: Visibility of function prototypes and declarations ................................................................................. 8
Section 1.6: Preprocessor .............................................................................................................................................. 9
Chapter 2: Literals ...................................................................................................................................................... 11
Section 2.1: this ............................................................................................................................................................. 11
Section 2.2: Integer literal ........................................................................................................................................... 11
Section 2.3: true ........................................................................................................................................................... 12
Section 2.4: false .......................................................................................................................................................... 13
Section 2.5: nullptr ....................................................................................................................................................... 13
Chapter 3: operator precedence ........................................................................................................................ 14
Section 3.1: Logical && and || operators: short-circuit .............................................................................................. 14
Section 3.2: Unary Operators ..................................................................................................................................... 15
Section 3.3: Arithmetic operators .............................................................................................................................. 15
Section 3.4: Logical AND and OR operators ............................................................................................................ 16
Chapter 4: Floating Point Arithmetic ............................................................................................................... 17
Section 4.1: Floating Point Numbers are Weird ........................................................................................................ 17
Chapter 5: Bit Operators ........................................................................................................................................ 18
Section 5.1: | - bitwise OR ............................................................................................................................................ 18
Section 5.2: ^ - bitwise XOR (exclusive OR) .............................................................................................................. 18
Section 5.3: & - bitwise AND ....................................................................................................................................... 20
Section 5.4: << - left shift ............................................................................................................................................. 20
Section 5.5: >> - right shift .......................................................................................................................................... 21
Chapter 6: Bit Manipulation ................................................................................................................................... 23
Section 6.1: Remove rightmost set bit ....................................................................................................................... 23
Section 6.2: Set all bits ................................................................................................................................................ 23
Section 6.3: Toggling a bit .......................................................................................................................................... 23
Section 6.4: Checking a bit ......................................................................................................................................... 23
Section 6.5: Counting bits set ..................................................................................................................................... 24
Section 6.6: Check if an integer is a power of 2 ....................................................................................................... 25
Section 6.7: Setting a bit ............................................................................................................................................. 25
Section 6.8: Clearing a bit ........................................................................................................................................... 25
Section 6.9: Changing the nth bit to x ....................................................................................................................... 25
Section 6.10: Bit Manipulation Application: Small to Capital Letter ........................................................................ 26
Chapter 7: Bit fields ................................................................................................................................................... 27
Section 7.1: Declaration and Usage ........................................................................................................................... 27
Chapter 8: Arrays ....................................................................................................................................................... 28
Section 8.1: Array initialization .................................................................................................................................... 28
Section 8.2: A fixed size raw array matrix (that is, a 2D raw array) ...................................................................... 29
Section 8.3: Dynamically sized raw array ................................................................................................................. 29
Section 8.4: Array size: type safe at compile time ................................................................................................... 30
Section 8.5: Expanding dynamic size array by using std::vector ........................................................................... 31

, Section 8.6: A dynamic size matrix using std::vector for storage .......................................................................... 32
Chapter 9: Iterators ................................................................................................................................................... 35
Section 9.1: Overview ................................................................................................................................................... 35
Section 9.2: Vector Iterator ........................................................................................................................................ 38
Section 9.3: Map Iterator ............................................................................................................................................ 38
Section 9.4: Reverse Iterators .................................................................................................................................... 39
Section 9.5: Stream Iterators ...................................................................................................................................... 40
Section 9.6: C Iterators (Pointers) .............................................................................................................................. 40
Section 9.7: Write your own generator-backed iterator ......................................................................................... 41
Chapter 10: Basic input/output in c++ ............................................................................................................. 43
Section 10.1: user input and standard output ........................................................................................................... 43
Chapter 11: Loops ........................................................................................................................................................ 44
Section 11.1: Range-Based For .................................................................................................................................... 44
Section 11.2: For loop ................................................................................................................................................... 46
Section 11.3: While loop ............................................................................................................................................... 48
Section 11.4: Do-while loop .......................................................................................................................................... 49
Section 11.5: Loop Control statements : Break and Continue .................................................................................. 50
Section 11.6: Declaration of variables in conditions ................................................................................................. 51
Section 11.7: Range-for over a sub-range ................................................................................................................. 52
Chapter 12: File I/O .................................................................................................................................................... 54
Section 12.1: Writing to a file ....................................................................................................................................... 54
Section 12.2: Opening a file ........................................................................................................................................ 54
Section 12.3: Reading from a file ............................................................................................................................... 55
Section 12.4: Opening modes ..................................................................................................................................... 57
Section 12.5: Reading an ASCII file into a std::string ................................................................................................ 58
Section 12.6: Writing files with non-standard locale settings .................................................................................. 59
Section 12.7: Checking end of file inside a loop condition, bad practice? ............................................................. 60
Section 12.8: Flushing a stream .................................................................................................................................. 61
Section 12.9: Reading a file into a container ............................................................................................................. 61
Section 12.10: Copying a file ....................................................................................................................................... 62
Section 12.11: Closing a file .......................................................................................................................................... 62
Section 12.12: Reading a `struct` from a formatted text file .................................................................................... 63
Chapter 13: C++ Streams ......................................................................................................................................... 65
Section 13.1: String streams ........................................................................................................................................ 65
Section 13.2: Printing collections with iostream ........................................................................................................ 66
Chapter 14: Stream manipulators ..................................................................................................................... 68
Section 14.1: Stream manipulators ............................................................................................................................. 68
Section 14.2: Output stream manipulators ............................................................................................................... 73
Section 14.3: Input stream manipulators ................................................................................................................... 75
Chapter 15: Flow Control ......................................................................................................................................... 77
Section 15.1: case ......................................................................................................................................................... 77
Section 15.2: switch ...................................................................................................................................................... 77
Section 15.3: catch ....................................................................................................................................................... 77
Section 15.4: throw ....................................................................................................................................................... 78
Section 15.5: default .................................................................................................................................................... 79
Section 15.6: try ............................................................................................................................................................ 79
Section 15.7: if ............................................................................................................................................................... 79
Section 15.8: else .......................................................................................................................................................... 80
Section 15.9: Conditional Structures: if, if..else ........................................................................................................... 80

, Section 15.10: goto ....................................................................................................................................................... 81
Section 15.11: Jump statements : break, continue, goto, exit ................................................................................... 81
Section 15.12: return ..................................................................................................................................................... 84
Chapter 16: Metaprogramming ........................................................................................................................... 86
Section 16.1: Calculating Factorials ............................................................................................................................ 86
Section 16.2: Iterating over a parameter pack ......................................................................................................... 88
Section 16.3: Iterating with std::integer_sequence ................................................................................................... 89
Section 16.4: Tag Dispatching .................................................................................................................................... 90
Section 16.5: Detect Whether Expression is Valid ..................................................................................................... 90
Section 16.6: If-then-else ............................................................................................................................................. 92
Section 16.7: Manual distinction of types when given any type T .......................................................................... 92
Section 16.8: Calculating power with C++11 (and higher) ......................................................................................... 93
Section 16.9: Generic Min/Max with variable argument count ............................................................................... 94
Chapter 17: const keyword .................................................................................................................................... 95
Section 17.1: Avoiding duplication of code in const and non-const getter methods ............................................ 95
Section 17.2: Const member functions ...................................................................................................................... 96
Section 17.3: Const local variables ............................................................................................................................. 97
Section 17.4: Const pointers ........................................................................................................................................ 97
Chapter 18: mutable keyword .............................................................................................................................. 99
Section 18.1: mutable lambdas ................................................................................................................................... 99
Section 18.2: non-static class member modifier ...................................................................................................... 99
Chapter 19: Friend keyword ................................................................................................................................ 101
Section 19.1: Friend function ..................................................................................................................................... 101
Section 19.2: Friend method ..................................................................................................................................... 102
Section 19.3: Friend class .......................................................................................................................................... 102
Chapter 20: Type Keywords ............................................................................................................................... 104
Section 20.1: class ...................................................................................................................................................... 104
Section 20.2: enum .................................................................................................................................................... 105
Section 20.3: struct .................................................................................................................................................... 106
Section 20.4: union .................................................................................................................................................... 106
Chapter 21: Basic Type Keywords .................................................................................................................... 108
Section 21.1: char ....................................................................................................................................................... 108
Section 21.2: char16_t ................................................................................................................................................ 108
Section 21.3: char32_t ............................................................................................................................................... 108
Section 21.4: int .......................................................................................................................................................... 108
Section 21.5: void ....................................................................................................................................................... 108
Section 21.6: wchar_t ................................................................................................................................................ 109
Section 21.7: float ....................................................................................................................................................... 109
Section 21.8: double ................................................................................................................................................... 109
Section 21.9: long ....................................................................................................................................................... 109
Section 21.10: short .................................................................................................................................................... 110
Section 21.11: bool ...................................................................................................................................................... 110
Chapter 22: Variable Declaration Keywords .............................................................................................. 111
Section 22.1: decltype ............................................................................................................................................... 111
Section 22.2: const .................................................................................................................................................... 111
Section 22.3: volatile ................................................................................................................................................. 112
Section 22.4: signed .................................................................................................................................................. 112
Section 22.5: unsigned .............................................................................................................................................. 112
Chapter 23: Keywords ............................................................................................................................................ 114

, Section 23.1: asm ....................................................................................................................................................... 114
Section 23.2: Dierent keywords ............................................................................................................................. 114
Section 23.3: typename ............................................................................................................................................ 118
Section 23.4: explicit .................................................................................................................................................. 119
Section 23.5: sizeof .................................................................................................................................................... 119
Section 23.6: noexcept .............................................................................................................................................. 120
Chapter 24: Returning several values from a function ....................................................................... 122
Section 24.1: Using std::tuple .................................................................................................................................... 122
Section 24.2: Structured Bindings ............................................................................................................................ 123
Section 24.3: Using struct ......................................................................................................................................... 124
Section 24.4: Using Output Parameters .................................................................................................................. 125
Section 24.5: Using a Function Object Consumer .................................................................................................. 126
Section 24.6: Using std::pair ..................................................................................................................................... 127
Section 24.7: Using std::array ................................................................................................................................... 127
Section 24.8: Using Output Iterator ......................................................................................................................... 127
Section 24.9: Using std::vector ................................................................................................................................. 128
Chapter 25: Polymorphism .................................................................................................................................. 129
Section 25.1: Define polymorphic classes ............................................................................................................... 129
Section 25.2: Safe downcasting ............................................................................................................................... 130
Section 25.3: Polymorphism & Destructors ............................................................................................................ 131
Chapter 26: References ......................................................................................................................................... 133
Section 26.1: Defining a reference ........................................................................................................................... 133
Chapter 27: Value and Reference Semantics ............................................................................................ 134
Section 27.1: Definitions ............................................................................................................................................ 134
Section 27.2: Deep copying and move support ..................................................................................................... 134
Chapter 28: C++ function "call by value" vs. "call by reference" .................................................... 138
Section 28.1: Call by value ........................................................................................................................................ 138
Chapter 29: Copying vs Assignment ............................................................................................................... 140
Section 29.1: Assignment Operator ......................................................................................................................... 140
Section 29.2: Copy Constructor ............................................................................................................................... 140
Section 29.3: Copy Constructor Vs Assignment Constructor ............................................................................... 141
Chapter 30: Pointers ............................................................................................................................................... 143
Section 30.1: Pointer Operations .............................................................................................................................. 143
Section 30.2: Pointer basics ...................................................................................................................................... 143
Section 30.3: Pointer Arithmetic ............................................................................................................................... 145
Chapter 31: Pointers to members ..................................................................................................................... 147
Section 31.1: Pointers to static member functions .................................................................................................. 147
Section 31.2: Pointers to member functions ........................................................................................................... 147
Section 31.3: Pointers to member variables ............................................................................................................ 148
Section 31.4: Pointers to static member variables ................................................................................................. 148
Chapter 32: The This Pointer .............................................................................................................................. 150
Section 32.1: this Pointer ........................................................................................................................................... 150
Section 32.2: Using the this Pointer to Access Member Data ............................................................................... 152
Section 32.3: Using the this Pointer to Dierentiate Between Member Data and Parameters ........................ 152
Section 32.4: this Pointer CV-Qualifiers ................................................................................................................... 153
Section 32.5: this Pointer Ref-Qualifiers .................................................................................................................. 156
Chapter 33: Smart Pointers ................................................................................................................................. 158
Section 33.1: Unique ownership (std::unique_ptr) .................................................................................................. 158
Section 33.2: Sharing ownership (std::shared_ptr) ................................................................................................ 159

Written for

Institution
Module

Document information

Uploaded on
October 7, 2023
Number of pages
696
Written in
2023/2024
Type
SUMMARY

Subjects

£6.57
Get access to the full document:

Wrong document? Swap it for free Within 14 days of purchase and before downloading, you can choose a different document. You can simply spend the amount again.
Written by students who passed
Immediately available after payment
Read online or as PDF

Get to know the seller
Seller avatar
Michael2030

Also available in package deal

Get to know the seller

Seller avatar
Michael2030 Published
Follow You need to be logged in order to follow users or courses
Sold
-
Member since
2 year
Number of followers
0
Documents
44
Last sold
-
programming books

I am selling you future books (programming). I will present to you everything you will need in terms of knowledge of any programming language in the form of a book with a lot of useful information for you, and as you also know that programmers have very high salaries, I will help you to be great programmers I wish you a pleasant reading and learning.

0.0

0 reviews

5
0
4
0
3
0
2
0
1
0

Trending documents

Recently viewed by you

Why students choose Stuvia

Created by fellow students, verified by reviews

Quality you can trust: written by students who passed their exams and reviewed by others who've used these revision notes.

Didn't get what you expected? Choose another document

No problem! You can straightaway pick a different document that better suits what you're after.

Pay as you like, start learning straight away

No subscription, no commitments. Pay the way you're used to via credit card and download your PDF document instantly.

Student with book image

“Bought, downloaded, and smashed it. It really can be that simple.”

Alisha Student

Frequently asked questions