Skip to content

Forgotw/CPP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

42 C++ Modules

Welcome to the C++ Modules repository, a series of projects designed to deepen your understanding of the C++ programming language. Through these modules, you will progressively explore the core concepts, features, and best practices of modern C++ development.

Overview

The C++ Modules are divided into 10 separate projects, each focusing on a specific aspect of the language. These modules are designed to build upon one another, gradually increasing in complexity and challenging you to write efficient, robust, and well-structured code.


Modules Breakdown

Module 00: Basics of C++

  • Objective: Learn the syntax and basic concepts of C++, including namespaces, classes, member functions, stdio streams, and file I/O.
  • Key Topics:
    • C++ syntax and structure.
    • Creating and manipulating classes.
    • File handling and streams.

Module 01: Memory Allocation and Pointers

  • Objective: Understand dynamic memory allocation, pointers, references, and the Rule of Three.
  • Key Topics:
    • Pointers and references.
    • Memory allocation (new, delete).
    • Rule of Three: Copy constructor, destructor, and copy assignment operator.

Module 02: Polymorphism and Operator Overloading

  • Objective: Explore polymorphism, operator overloading, and exception handling in C++.
  • Key Topics:
    • Function and operator overloading.
    • Exceptions and error handling.
    • Inheritance basics.

Module 03: Inheritance and Abstract Classes

  • Objective: Delve deeper into inheritance, abstract classes, and virtual functions.
  • Key Topics:
    • Abstract base classes.
    • Virtual functions and overriding.
    • Upcasting and downcasting.

Module 04: Subtype Polymorphism and Interfaces

  • Objective: Work with interfaces, polymorphism, and dynamic casting.
  • Key Topics:
    • Pure virtual functions.
    • Interfaces in C++.
    • Dynamic casting (dynamic_cast).

Module 05: Templates and Containers

  • Objective: Learn about templates, generic programming, and standard containers.
  • Key Topics:
    • Function templates and class templates.
    • Iterators and standard containers (vector, list, map, etc.).
    • STL algorithms.

Module 06: C++ Exceptions

  • Objective: Master exception handling and understand the RAII (Resource Acquisition Is Initialization) idiom.
  • Key Topics:
    • Advanced exception handling.
    • RAII and smart pointers.
    • Exception safety.

Module 07: Templates and Specialized Programming

  • Objective: Work with advanced templates, including specialization and template metaprogramming.
  • Key Topics:
    • Template specialization.
    • SFINAE (Substitution Failure Is Not An Error).
    • Variadic templates.

Module 08: STL Containers and Algorithms

  • Objective: Dive deeper into the Standard Template Library (STL), focusing on containers, iterators, and algorithms.
  • Key Topics:
    • Advanced use of STL containers.
    • Writing custom iterators.
    • STL algorithms (find, sort, transform, etc.).

Module 09: Data Serialization and Streams

  • Objective: Learn how to serialize and deserialize data in C++, including working with streams and files.
  • Key Topics:
    • Serialization and deserialization techniques.
    • File streams and binary files.
    • Practical use cases for data storage.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published