Beginning C++ Programming – From Beginner to Beyond

Beginning C++ Programming – From Beginner to Beyond
Beginning C++ Programming – From Beginner to Beyond
English | MP4 | AVC 1280×720 | AAC 48KHz 2ch | 41.5 Hours | 7.59 GB

Obtain Modern C++ Object-Oriented Programming (OOP) and STL skills needed for game, system, and application development.

Which programming language is often seen as a badge of honor among software developers? C++

Which programming language can you learn that when added to your resume, will often get you a job interview? C++

Which programming language is routinely ranked in the top 5 programming languages by popularity, and been consistently in the top 10 for close to 20 years? C++

Why you should learn C++

Much, if not most of software written today is still written in C++ and this has been the case for many, many years.

Not only is C++ popular, it is also a very relevant language. If you go to GitHub you will see that there are a huge number of active C++ repositories and C++ is also extremely active on stack overflow.

There are many, many leading software titles written entirely or partly in C++. These include the Windows, Linux and Mac OSX operating systems!

Many of the Adobe products such as Photoshop and Illustrator, the mySQL and MongoDB database engines, and many many more are written in C++.

Leading tech companies use C++ for many of their products and internal research and development. These include Amazon, Apple, Microsoft, PayPal, Google, Facebook, Oracle and many more.

Can you see how learning C++ will open up more career opportunities for you?

If more professional companies are using C++, it stands to reason that there is going to be more of a demand for C++ programmers.

But the main reason programmers should probably learn C++ is because it is so powerful!

What do I mean by powerful?

C++ is super fast, and is a general purpose programming language that supports both procedure and object oriented programming making it very flexible.

It can scale easily. And it can be portable as well.

C++ can do many things that other languages just can’t.

That’s why nearly every major language has a way to interface with code written in C++.

Since C++ has influenced so many languages, if you know C++ you’ll likely see elements from C++ in new languages you learn.

How can a beginner learn C++ ?

Find a good course, taught by an instructor with many years of experience in C++ is critical, as is the need for the instructor to have the necessary skills to be able to teach you the language.

Frank Mitropolous, the instructor in this course has been using C++ for over 2 decades and has taught students in both university courses and industry training courses. He even worked on a C++ compiler development project while he was in industry.

So not only will you be learning C++ from an expert C++ programmer, but you’ll also be taught by an instructor who has successfully taught at university level for many years.

As a result, you can take this course with confidence, knowing that you will learn C++ the right way, and in the shortest possible timeframe.

Which version of C++ should I learn?

C++ has had many version releases and updates over the years. It’s a sad fact that most C++ courses do not teach Modern C++, but focus on old, obsolete versions of C++.

Frank teaches you Modern C++ (specifically C++ 11 and C++ 14).

Learn C++ the right way, with Modern C++, as taught by Frank in this course.

Is C++ difficult to learn?

With all the power and flexibility of C++ comes complexity.

There is no question that C++ is one of the most complex programming languages out there.

But with the right instructor, and the right training, you really can get up to speed with C++ quickly, and that’s what this course is all about.

What will I learn in this course?

The course assumes no previous experience with C++ (or even programming in general), and you will end up with the skills to create your own programs in C++.

Key topics covered include.

  • Looping with while, do/while for, range-based for statements and recursion
  • Performing calculations and displaying results
  • Functions
  • Pointers
  • Using existing classes and creating objects
  • Creating your own classes
  • Using Basic Standard Template Library classes such as Vector
  • Constructors and Destructors
  • Copy and Move semantics including Copy constructors, Move constructors, and copy and move assignment
  • How to overload operators
  • Using inheritance and class hierarchies
  • Using Polymorphic functions and dynamic binding
  • Using smart pointers
  • Using stream I/O
  • An introduction to the C++ STL
  • An introduction to Exception Handling
  • And much more.

What you’ll learn

  • Learn to program with one of the most powerful programming languages that exists today, C++.
  • Obtain the key concepts of programming that will also apply to other programming languages
  • Learn Modern C++ rather than an obsolete version of C++ that most other courses teach
  • Learn C++ features from basic to more advanced such as inheritance and polymorphic functions
  • Learn C++ using a proven curriculum that covers more material than most C++ university courses
  • Learn C++ from an experienced university full professor who has been using and teaching C++ for more than 25 years
  • Includes Quizzes, Live Coding Exercises, Challenge Coding Exercises and Assignments
Table of Contents

Introduction
1 About the Course
2 Why Learn C
3 Modern C and the C Standard
4 How does all this work
5 FAQ — Please Read

Installation and Setup
6 Installation and Setup Overview
7 Installing the C Compiler on Windows
8 Installing CodeLite on Windows
9 Configuring CodeLite on Windows
10 Installing the C Compiler on Mac OSX
11 Installing CodeLite on Mac OSX
12 Configuring CodeLite on Mac OSX
13 Installing CodeLite on Ubuntu Linux
14 Configuring CodeLite on Ubuntu Linux
15 Creating a Default CodeLite Project Template (All Versions)
16 Using the Command-Line interface
17 Using the Command-Line Interface on Windows
18 Using the Command-Line Interface on Mac OSX
19 Using the Command-Line Interface on Linux (Ubuntu)
20 Using a Web-based C Compiler
21 Using the Included Source Code Course Resources

Curriculum Overview
22 Curriculum Overview
23 Overview of the Section Challenge Exercises
24 Overview of the Section Quizzes

Getting Started
25 Section Overview
26 An Overview of the CodeLite Interface
27 Writing our first program
28 Building our first program
29 What are Compiler Errors
30 What are Compiler Warnings
31 What are Linker Errors
32 What are Runtime Errors
33 What are Logic Errors
34 Section Challenge
35 Section Challenge – Solution

Structure of a C Program
36 Section Overview
37 Overview of the Structure of a C Program
38 include Preprocessor Directive
39 Comments
40 The main() function
41 Namespaces
42 Basic Input and Output (IO) using cin and cout

Variables and Constants
43 Section Overview
44 What is a variable
45 Declaring and Initializing Variables
46 Global Variables
47 C Built-in Primitive Types
48 What is the Size of a Variable (sizeof)
49 What is a Constant
50 Declaring and Using Constants
51 Section Challenge
52 Section Challenge – Solution

Arrays and Vectors
53 Section Overview
54 What is an Array
55 Declaring and Initializing Arrays
56 Accessing and Modifying Array Elements
57 Multidimensional Arrays
58 Declaring and Initializing Vectors
59 Accessing and Modifying Vector Elements
60 Section Challenge
61 Section Challenge – Solution

Statements and Operators
62 Section Overview
63 Expressions and Statements
64 Using Operators
65 The Assignment Operator
66 Arithmetic Operators
67 Increment and Decrement Operators
68 Mixed Expressions and Conversions
69 Testing for Equality
70 Relational Operators
71 Logical Operators
72 Compound Assignment Operators
73 Operator Precedence
74 Section Challenge
75 Section Challenge – Solution

Controlling Program Flow
76 Section Overview
77 if Statement
78 if else Statement
79 Nested if Statement
80 switch-case Statement
81 Conditional Operator
82 Looping
83 for Loop
84 range-based for Loop
85 while Loop
86 do while Loop
87 continue and break
88 Infinite Loops
89 Nested Loops
90 Section Challenge
91 Section Challenge – Solution Part 1
92 Section Challenge – Solution Part 2

Characters and Strings
93 Section Overview
94 Character Functions
95 C-Style Strings
96 Working with C-style Strings
97 C Strings
98 Working with C Strings
99 Section Challenge
100 Section Challenge – Solution

Functions
101 Section Overview
102 What is a Function
103 Function Definition
104 Function Prototypes
105 Function Parameters and the return Statement
106 Default Argument Values
107 Overloading Functions
108 Passing Arrays to Functions
109 Pass by Reference
110 Scope Rules
111 How do Function Calls Work
112 inline Functions
113 Recursive Functions
114 Section Challenge
115 Section Challenge-Solution

Pointers and References
116 Section Overview
117 What is a Pointer
118 Declaring Pointers
119 Accessing the Pointer Address and Storing Address in a Pointer
120 Dereferencing a Pointer
121 Dynamic Memory Allocation
122 The Relationship Between Arrays and Pointers
123 Pointer Arithmetic
124 Const and Pointers
125 Passing Pointers to Functions
126 Returning a Pointer from a Function
127 Potential Pointer Pitfalls
128 What is a Reference
129 L-values and R-values
130 Using the CodeLite IDE Debugger
131 Section Recap
132 Section Challenge
133 Section Challenge – Solution

OOP – Classes and Objects
134 Section Overview
135 What is Object-Oriented Programming
136 What are Classes and Objects
137 Declaring a Class and Creating Objects
138 Accessing Class Members
139 public and private
140 Implementing Member Methods
141 Constructors and Destructors
142 The Default Constructor
143 Overloading Constructors
144 Constructor Initialization lists
145 Delegating Constructors
146 Constructor Parameters and Default Values
147 Copy Constructor
148 Shallow Copying with the Copy Constructor
149 Deep Copying with the Copy Constructor
150 Move Constructors
151 The this Pointer
152 Using const with Classes
153 Static Class Members
154 Structs vs Classes
155 Friends of a class
156 Section Challenge
157 Section Challenge – Solution

Operator Overloading
158 Section Overview
159 What is Operator Overloading
160 Overloading the Assignment Operator (copy)
161 Overloading the Assignment Operator (move)
162 Overloading Operators as Member Functions
163 Overloading Operators as Global Functions
164 Overloading the Stream Insertion and Extraction Operators
165 Section Challenge
166 Section Challenge – Solution 1
167 Section Challenge – Solution 2

Inheritance
168 Section Overview
169 What is Inheritance
170 Terminology and Notation
171 Inheritance vs. Composition
172 Deriving Classes from Existing Classes
173 Protected Members and Class Access
174 Constructors and Destructors
175 Passing Arguments to Base Class Constructors
176 CopyMove Constructors and Operator with Derived Classes
177 Redefining Base Class Methods
178 Multiple Inheritance
179 The Updated Accounts Example
180 Section Challenge
181 Section Challenge – Solution

Polymorphism
182 Section Overview
183 What is Polymorphism
184 Using a Base Class Pointer
185 Virtual Functions
186 Virtual Destructors
187 Using the Override Specifier
188 Using the Final Specifier
189 Using Base Class References
190 Pure Virtual Functions and Abstract Classes
191 Abstract Classes as Interfaces
192 Section Challenge
193 Section Challenge – Solution Part 1
194 Section Challenge – Solution Part 2
195 Section Challenge – Final Solution

Smart Pointers
196 Section Overview
197 Some Issues with Raw Pointers
198 What is a Smart Pointer Ownership and RAII
199 Unique Pointers
200 Shared Pointers
201 Weak Pointers
202 Custom Deleters
203 Section Challenge 1
204 Section Challenge 1 – Solution

Exception Handling
205 Section Overview
206 Basic Concepts and a Simple Example Dividing by Zero
207 Throwing an Exception from a Function
208 Handling Multiple Exceptions
209 Stack Unwinding and How it Works
210 Creating User-Defined Exception Classes
211 Class Level Exceptions
212 The C stdexception Class Hierarchy
213 Section Challenge
214 Section Challenge – Solution

IO and Streams
215 Section Overview
216 Files Streams and IO
217 Stream Manipulators
218 Stream Manipulators – boolean
219 Stream Manipulators – integers
220 Stream Manipulators – floating point
221 Stream Manipulators – align and fill
222 Section Challenge 1
223 Section Challenge 1 – Solution
224 Reading from a Text File
225 Reading from a Text File – Live Demo – Part 1
226 Reading from a Text File – Live Demo – Part 2
227 Section Challenge 2
228 Section Challenge 2 – Solution
229 Section Challenge 3
230 Section Challenge 3 – Solution
231 Writing to a Text File
232 Writing to a Text File – Live Demo
233 Section Challenge 4
234 Section Challenge 4 – Solution
235 Using String Streams
236 File locations with some Popular IDEs

The Standard Template Library (STL)
237 Section Overview
238 What is the STL
239 Generic Programming with Macros
240 Generic Programming with Function Templates
241 Generic Programming with Class Templates
242 Creating a Generic Array Template Class
243 Introduction to STL Containers
244 Introduction to STL Iterators
245 Introduction to Iterators – Demo
246 Introduction to STL Algorithms
247 Introduction to Algorithms – Demo
248 Sequence Container – Array
249 Sequence Containers – Vector
250 Sequence Containers – Deque
251 Section Challenge 1
252 Section Challenge 1 – Solution
253 Sequence Containers – List and Forward List
254 Section Challenge 2
255 Section Challenge 2 – Solution
256 Associative Containers – Sets
257 Associative Containers – Maps
258 Section Challenge 3
259 Section Challenge 3 – Solution
260 Container Adaptors – Stack
261 Container Adaptors – Queue
262 Section Challenge 4
263 Section Challenge 4 – Solution
264 Container Adaptors – Priority Queue

Extra Information – Source code and other stuff
265 Source Code for all Sections
266 Bonus Lecture and Information