
Assess prerequisites like variables, loops, and arrays for this advanced C++ course. Outline seven chapters with twenty questions per chapter and unsolved practice problems, plus a Walter Savage supplementary book.
Compare procedural, functional, and object oriented programming, then examine how flowcharts illustrate algorithms and how classes and objects enable abstraction, inheritance, and polymorphism in large collaborative C++ projects.
Create a car class with private mileage and weight, public move and stop. Provide getters and setters; define functions outside with scope resolution operator; print details to screen and file.
Explore how constructors initialize objects in C++, including default constructors, two-, three-, and four-argument forms, initialization lists, and member initialization with basic validity checks.
Explore how inheritance in C++ eliminates repetitive code by sharing a vehicle base class among car, airplane, and bicycle. Implement public inheritance with constructors and getters and setters.
Create a rectangle class with a default constructor, length and width, implement getters, setters, area and perimeter, and read input in main to print results.
Read rectangle data from a text file into a dynamic Rectangle array, compute each rectangle’s length, width, area, and perimeter, and report average area and perimeter.
Master C++ advanced concepts by solving questions on object oriented programming, object initialization, constructors, getters and setters, encapsulation, data hiding, and the scope resolution operator.
Discover how to use friend functions to enable operator-style comparisons for a calendar class, by defining a non-member equal function that accesses private members and testing it on two objects.
Explore operator overloading in C++ by implementing equality and arithmetic for a money class, including the plus operator, unary operators, and insertion and extraction operators, with constructor-based type conversions.
Learn how to use arrays within classes, including arrays of class objects and dynamic arrays, with constructors and overloaded input/output operators to compute maximums and differences.
Explains the big three in C++, destructor, copy constructor, and assignment operator, and demonstrates deep copies for classes with dynamic arrays.
Explore dynamic memory management in the Ray class, including constructors, copy and destructor, plus set/get, increment, get size, print, add, remove at, insert, and equality operations.
Explore how member, non-member, and friend functions access class data; apply const correctness, pass-by-reference, and operator overloading, then master copy constructor, assignment, and destructor in the big three.
This is the second programming course offered in university. This course will teach you concepts that are widely used in the software world in fields such as game development, web development, mobile app development, and much more. Having a solid foundation in object oriented programming will help you excel in those fields.
Prerequisites
The Ultimate C++ Beginner Course
Recommended Book
Problem Solving with C++ 10th Edition by Walter Savitch
About this Course
You will learn advanced programming concepts. In particular, we focus on object oriented programming (OOP).
FAQ
Where can I ask you questions?
You can leave a comment under the "Q and A" tab in the lecture related to your question.
__________________________________________________________________________________________________________________
Does this course cover data structures?
No. Data structures is a course by itself, which universities usually offer after completing an object oriented programming course.
__________________________________________________________________________________________________________________
What's next?
I'll work on a short After Effects video editing/animation course, then you can expect a few web development courses. In particular, I'll create a course on HTML and CSS (two of the core technologies for building websites), and Wordpress (a powerful tool that allows you to build websites using a simple drag and drop interface without using any code.