An open API service indexing awesome lists of open source software.

https://github.com/nhmikami/42-cpp

Introduction to object-oriented programming
https://github.com/nhmikami/42-cpp

cpp oop

Last synced: 10 months ago
JSON representation

Introduction to object-oriented programming

Awesome Lists containing this project

README

          

# 42-cpp

This repository contains the C++ modules developed as part of the 42 curriculum. Each module introduces core C++ concepts through practical exercises, aiming to build a solid understanding of object-oriented programming.

## Modules Overview

### ๐Ÿ“ฆ cpp00
> **Foundations of C++**
- Namespaces
- Classes and member functions
- Standard I/O streams
- Initialization lists
- `static` and `const` keywords
- Basic C++ syntax and structure

### ๐Ÿ’ก cpp01
> **Memory and References**
- Dynamic memory allocation
- Pointers and references
- Pointers to member functions
- `switch` statements
- Introduction to file I/O using `ifstream` and `ofstream`

### โš™๏ธ cpp02
> **Ad-hoc Polymorphism**
- Operator overloading
- Function overloading
- Canonical Orthodox Form ("Rule of Four")
- Constructors, destructors, copy constructors, assignment operators

### ๐Ÿงฌ cpp03
> **Inheritance**
- Basic inheritance and derived classes
- Use of `public`, `protected`, and `private` inheritance
- Constructors and destructors order in inheritance

### ๐Ÿง  cpp04
> **Polymorphism and Abstractions**
- Subtype polymorphism using virtual functions
- Abstract classes and interfaces
- Virtual destructors
- Deep dive into runtime behavior of polymorphic types

### ๐Ÿ›‘ cpp05
> **Exceptions and Error Handling**
- Use of `try`, `catch`, and `throw` keywords
- Exception class hierarchy
- Custom exception classes
- Best practices for error handling in C++

### ๐Ÿ” cpp06
> **Casting in C++**
- `static_cast`, `dynamic_cast`, and `reinterpret_cast`
- Use cases and limitations of each cast
- Type conversions and their implications

### ๐Ÿงฉ cpp07
> **Templates**
- Function templates
- Class templates
- Function objects (functors)
- Template specialization and partial specialization

### ๐Ÿงต cpp08
> **Templated Containers and Algorithms**
- Custom containers with templates
- Iterators and iterator categories
- Generic algorithms from the STL

### ๐Ÿ—ƒ๏ธ cpp09
> **Standard Template Library (STL)**
- Overview of STL containers: vector, list, deque, map, set
- STL algorithms and utilities
- Time and space complexity of STL operations