Object-oriented programming (OOP) in C++20
What you'll learn
- Students will learn the core principles of Object-Oriented Programming (OOP) in C++20.
- They will understand how to create classes and objects and effectively encapsulate data.
- The course covers constructors, destructors, and the importance of proper resource management.
- Students will grasp the concepts of shallow and deep copy and master move semantics.
- They'll explore advanced topics such as friend classes and the use of this pointer.
- The course demonstrates the implementation of setters and getters for controlled access to class data.
- Students will gain proficiency in working with nested classes for better organization of code.
- They will harness the power of C++20 modules for efficient code organization and reuse.
- The course elucidates the relationship between namespaces, modules, and classes for modular code design.
- Students will master inheritance, polymorphism, and operator overloading for building robust C++ applications.
Requirements
- Before taking this course you should know the basics of C++ including "Variables, functions, Arrays and vectors, Operators, Loops and basic pointers"
Description
Are you ready to unlock the full potential of C++ and revolutionize your programming skills? This comprehensive course is designed to take you to a proficient C++ programmer, focusing specifically on Object-Oriented Programming (OOP) principles using the latest features of C++20.
Throughout this course, you will delve deep into the fundamental concepts of OOP and learn how to leverage them effectively in your C++ projects. Here's a glimpse of what you'll cover:
Classes and Objects: Understand the building blocks of OOP, including classes, objects, and their interactions.
Encapsulation: Discover the power of encapsulation in C++ to hide implementation details and protect data integrity.
Constructors and Destructors: Master the creation and destruction of objects with constructors and destructors, including overloading constructors for flexible object initialization.
Copy and Move Semantics: Dive into the concepts of shallow and deep copy, move constructors, and their importance in resource management.
This Pointer and Friend Classes: Learn how to access class members and grant special access privileges to external classes.
Setters and Getters: Implement encapsulated access to class data using setter and getter methods.
Nested Classes: Explore the concept of nested classes and their role in organizing and encapsulating complex data structures.
Modules: Harness the power of C++20 modules for efficient code organization, exportation, and importation.
Namespaces and Relationships: Understand the relationship between namespaces, modules, and classes for better code organization and modularity.
Operator Overloading: Extend the functionality of operators for user-defined types to enhance code readability and expressiveness.
Inheritance and Polymorphism: Delve into advanced OOP concepts like inheritance, polymorphism, and dynamic binding, including virtual functions, VTables, and the final specifier.
Multiple Inheritance: Navigate the complexities of multiple and repeated inheritance to build robust class hierarchies.
Each section of the course is accompanied by practical examples and hands-on exercises, allowing you to reinforce your learning and gain practical experience. By the end of this course, you'll have the confidence and skills to tackle complex C++ projects with ease, leveraging the full power of Object-Oriented Programming.
Enroll now and embark on a journey to become a master C++ developer!
Who this course is for:
- This course targets intermediate to advance C++ programmers.
- The course simplifies Object-Oriented Programming (OOP) principles.
- It focuses on leveraging the latest features of C++20.
- By the end, students will excel in object-oriented C++ programming, modules and namespaces.
Instructor
I am a video game developer and 3D animator with over six years of experience in the industry. I've taught numerous courses on topics such as Unreal Engine 5, C++, Epic Online Services (EOS), game NPCs, vehicle games, OOP in C++20, and pointers & memory management in C++, helping aspiring developers bring their ideas to life. On Udemy, I have published over 10 courses covering game development, programming, and animation.
I also developed the multiplayer shooter game "Deadly Domain," published on the Epic Games Store. Using Unreal Engine 5 and C++, I crafted a game that showcases my commitment to creating engaging and immersive experiences.
In early 2020, my siblings Esmat Taraki and Sharifa Taraki, along with myself, founded Genifinity, which later became Genifinity Inc. in Canada in 2024. Our mission is to empower people through online courses in game development, programming, and 3D animation. We have published "Deadly Domain" on Epic Games, created over 10 Udemy courses, launched three YouTube channels, built three websites, and produced more than five short animated movies. Additionally, we've collaborated on over 50 projects with major companies worldwide.
My extensive experience as a motion graphic designer and 3D animator with large national television networks has enriched my skill set and perspective. With a passion for both game development and education, I am dedicated to helping others achieve their goals in programming, video game creation, and 3D animation.