https://github.com/link-wolf/42-piscine_cpp
42 project - 9 progressive C++ projects to learn OOP
https://github.com/link-wolf/42-piscine_cpp
42 42born2code 42school cpp macos
Last synced: 2 months ago
JSON representation
42 project - 9 progressive C++ projects to learn OOP
- Host: GitHub
- URL: https://github.com/link-wolf/42-piscine_cpp
- Owner: Link-Wolf
- Created: 2022-07-20T08:27:34.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2024-09-25T13:40:11.000Z (almost 2 years ago)
- Last Synced: 2025-01-27T12:49:39.434Z (over 1 year ago)
- Topics: 42, 42born2code, 42school, cpp, macos
- Language: C++
- Homepage:
- Size: 353 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
42-Piscine_CPP
I’ve never thought i would miss C
Introduction to Object-Oriented Programming
Report Bug
·
Request Feature
Table of Contents
## About The Project
There are 9 different small C++ projects which aim to teach us all basic C++ concepts step by step
For this projects, the code should comply with C++98 standard (compile with `-std=c++98` flag)
So C++11 and `Boost` libraries are forbidden, as well as `*printf()`, `*alloc()` and `free()` functions to use as much as possible the C++-ish versions of the C functions
Here are all the C++ concepts discussed :
- Namespaces, classes, member functions, `stdio` streams, static, const
- Memory allocation, pointers to members, references, `switch` statement
- Polymorphism, operator overloading and canonical form
- Inheritance
- Polymorphism by sub-typing, abstract classes, interfaces
- Exceptions
- C++ casts
- Templates
- Containers templates, iterators, algorithms
## Getting Started
Because they're simple C++ programs, there isn't much to say here
### Prerequisites
Having a C++ compiler like c++
### Installation
1. Clone the repo
```sh
git clone https://github.com/Link-Wolf/42-Piscine_CPP.git
```
2. Compile one of the exercice, in one of the sub-projects
```sh
cd 42-Piscine_CPP/Cpp0X/exXX; make
```
3. Execute the program
```sh
./exXX
```
## Usage
Test differents exercices in differents sub-projects and have fun..i guess ?
#### Example
```sh
your_terminal$ ./ex01
```
#### Output
```
< May the Bureaucratie (and form) artificial nightmare begin >
Michelle, bureaucrat grade 129
Michelle, bureaucrat grade 129 couldn't sign Form Inscription au cours de B.D.S.M. (Big Data Security Managment), with grade 100 required to be signed and grade 100 required to be executed with the following signed status : 0 because GradeTooLowExeption : Grade too low :(
GradeTooLowExeption : Grade too low :(
BoB, bureaucrat grade 1
BoB, bureaucrat grade 1 signed Form Creation du cours de Twerk Spacial, with grade 100 required to be signed and grade 100 required to be executed with the following signed status : 1
Form Creation du cour de Twerk Spacial, with grade 100 required to be signed and grade 100 required to be executed with the following signed status : 1
Form Default, with grade 150 required to be signed and grade 150 required to be executed with the following signed status : 0
GradeTooLowExeption : Grade too low :(
```
## Roadmap
- [ ] Make a better and more detailed readme (for each sub-project ?)
See the [open issues](https://github.com/Link-Wolf/42-Piscine_CPP/issues) for a full list of proposed features (and known issues).