C++ is a general-purpose programming language that was first developed in the 1980s. The language was designed by Bjarne Stroustrup under the name "C with classes".
C++ is a version of C that includes Object-Oriented elements, including classes and functions.
This C++ project is divided into several modules, each covering specific aspects of the C++ language and programming concepts. Below is an overview of each module:
Namespaces, Classes, Member Functions, stdio Streams, Initialization Lists, Static, Const, and Basic Concepts
- Namespaces: Introduction to namespaces for organizing code.
- Classes: Definition and implementation of classes to encapsulate data and behavior.
- Member Functions: Implementation of member functions within classes.
- stdio Streams: Basic input and output using standard streams.
- Initialization Lists: Utilizing initialization lists for efficient member initialization.
- Static: Understanding static members within classes.
- Const: Proper usage of const qualifiers for member functions and variables.
- Other Basic Concepts: Introduction to fundamental C++ concepts.
- Memory Allocation: Dynamic memory allocation and deallocation.
- Pointers to Members: Understanding pointers to class members.
- References: Usage of references in C++.
- Switch Statement: Implementation and usage of the switch statement.
- Ad-hoc Polymorphism: Introduction to ad-hoc polymorphism in C++.
- Operator Overloading: Overloading operators for user-defined types.
- Orthodox Canonical Class Form: Defining the canonical form for classes in C++.
- Inheritance: Understanding and implementing inheritance in C++.
- Subtype Polymorphism: Implementation and usage of subtype polymorphism.
- Abstract Classes: Creation of abstract classes and pure virtual functions.
- Interfaces: Defining and implementing interfaces in C++.
- Repetition: Review and practice of concepts covered in previous modules.
- Exceptions: Introduction to exception handling in C++.
- C++ Casts: Understanding different types of casts available in C++.
- C++ Templates: Introduction to template programming in C++.
- Templated Containers: Introduction to templated containers for generic data storage.
- Iterators: Usage of iterators for traversing containers.
- Algorithms: Implementation and usage of standard algorithms for data manipulation.
- STL: Utilization of the Standard Template Library for efficient data structures and algorithms.
- Constraints: Application of constraints to limit template parameter types.
- Reverse Polish Notation: Understanding and implementing the Reverse Polish Notation for mathematical expressions.
- Merge-Insert Sort Algorithm: Introduction to the merge-insert sort algorithm for efficient sorting.
- Ford-Johnson Algorithm: Understanding and implementing the Ford-Johnson algorithm for finding shortest paths in a graph.