{"id":24974427,"url":"https://github.com/rogeriols/cpp-42sp","last_synced_at":"2025-03-29T06:45:14.178Z","repository":{"id":265161409,"uuid":"894194022","full_name":"RogerioLS/CPP-42sp","owner":"RogerioLS","description":"About A collection of small 42 school projects about C++.","archived":false,"fork":false,"pushed_at":"2025-03-23T15:13:45.000Z","size":447,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-29T06:45:03.487Z","etag":null,"topics":["42born2code","42cursus","42projects","42school","cpp-modules","cpp-modules-42","cpp98"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RogerioLS.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-25T23:24:09.000Z","updated_at":"2025-03-23T15:13:48.000Z","dependencies_parsed_at":null,"dependency_job_id":"ed47d57d-1aa2-4f0a-ab37-e1fd91170f0c","html_url":"https://github.com/RogerioLS/CPP-42sp","commit_stats":null,"previous_names":["rogeriols/cpp-42sp"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RogerioLS%2FCPP-42sp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RogerioLS%2FCPP-42sp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RogerioLS%2FCPP-42sp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RogerioLS%2FCPP-42sp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RogerioLS","download_url":"https://codeload.github.com/RogerioLS/CPP-42sp/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246150412,"owners_count":20731419,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["42born2code","42cursus","42projects","42school","cpp-modules","cpp-modules-42","cpp98"],"created_at":"2025-02-03T20:04:05.942Z","updated_at":"2025-03-29T06:45:14.172Z","avatar_url":"https://github.com/RogerioLS.png","language":"C++","readme":"\u003cdiv align = center\u003e\n\n# :speech_balloon: CPP | 42 SP\n\n![CPP00](https://github.com/RogerioLS/CPP-42sp/actions/workflows/build_cpp00.yml/badge.svg)\n![CPP01](https://github.com/RogerioLS/CPP-42sp/actions/workflows/build_cpp01.yml/badge.svg)\n![CPP02](https://github.com/RogerioLS/CPP-42sp/actions/workflows/build_cpp02.yml/badge.svg)\n![CPP03](https://github.com/RogerioLS/CPP-42sp/actions/workflows/build_cpp03.yml/badge.svg)\n![CPP04](https://github.com/RogerioLS/CPP-42sp/actions/workflows/build_cpp04.yml/badge.svg)\n![CPP05](https://github.com/RogerioLS/CPP-42sp/actions/workflows/build_cpp05.yml/badge.svg)\n![Static Badge](https://custom-icon-badges.demolab.com/badge/CPP-42-blue?logo=repo)\n![42 São Paulo](https://custom-icon-badges.demolab.com/badge/42-SP-1E2952)\n![License](https://custom-icon-badges.demolab.com/github/license/RogerioLS/CPP-42sp?logo=law\u0026color=dark-green)\n![Code size in bytes](https://custom-icon-badges.demolab.com/github/languages/code-size/RogerioLS/CPP-42sp?logo=file-code\u0026color=dark-green)\n![Top language](https://custom-icon-badges.demolab.com/github/languages/top/RogerioLS/CPP-42sp?color=dark-green)\n![Last commit](https://custom-icon-badges.demolab.com/github/last-commit/RogerioLS/CPP-42sp?logo=history\u0026color=dark-green)\n![Repo size](https://custom-icon-badges.demolab.com/github/repo-size/RogerioLS/CPP-42sp?logo=database)\n![Languages](https://custom-icon-badges.demolab.com/github/languages/count/RogerioLS/CPP-42sp?logo=command-palette\u0026color=red)\n![Discord](https://custom-icon-badges.demolab.com/discord/1114673462859006044?\u0026logo=comments\u0026label=testemunhas%20de%20vim\u0026color=ffbe3a)\n![](https://img.shields.io/github/forks/RogerioLS/CPP-42sp)\n\n\u003c/div\u003e\n\nUma série de projetos rigorosamente alinhados com as normas da 42, que vai do **CPP 00** ao **CPP 09**, projetada para desenvolver habilidades em **Programação Orientada a Objetos** e **C++ moderno**.\n\n### Estratégia de Estudo e Desenvolvimento\n\n#### 1. Entender o Conceito  \nAntes de cada módulo, revisamos os conceitos principais abordados (como classes, polimorfismo, templates, etc.).\n\n#### 2. Desenvolver com Qualidade  \nCriamos código limpo, documentado e em conformidade com as normas da 42.\n\n#### 3. Testar e Refatorar  \nGarantimos que o código funcione perfeitamente e atenda aos requisitos do projeto.\n\n---\n\n### Resumo dos Módulos\n\n#### **CPP Module 00**  \n- **Introdução ao C++**: classes, objetos, namespaces e boas práticas.  \n- **Objetivo**: Aprender a diferenciar entre atributos privados, públicos e o uso do `std::string`.\n\n\u003cdetails\u003e\n\u003csummary\u003eModule 00 - Namespace, class, member functions, stdio stream, initialization lists, static\u003c/summary\u003e\n\n- [ex00 - String manipulation and command-line argument handling](./CPP00/ex00/)\n- [ex01 - Classes, Object instantiation, Basic I/O, String manipulation](./CPP00/ex01/)\n- [ex02 - File recreation, C++ programming, Object-oriented design](./CPP00/ex02/)\n\n**Resources:**\n- **OOP in CPP:** [GeeksforGeeks](https://www.geeksforgeeks.org/object-oriented-programming-in-cpp/)\n- **std::cin.getline() vs. std::cin:** [Stack Overflow](https://stackoverflow.com/questions/4745858/stdcin-getline-vs-stdcin)\n- **atoi() in cpp strings:** [Stack Overflow](https://stackoverflow.com/questions/27640333/how-do-i-use-atoi-function-with-strings-in-c)\n- **string.length() vs. string.size():** [Stack Overflow](https://stackoverflow.com/questions/31628940/which-is-faster-c-string-length-or-size)\n- **Constructors in CPP:** [GeeksforGeeks](https://www.geeksforgeeks.org/constructors-c/)\n- **Destructors in CPP:** [GeeksforGeeks](https://www.geeksforgeeks.org/destructors-c/)\n- **C++: cin.getline - no instance of overload function:** [Stack Overflow](https://stackoverflow.com/questions/36459267/c-cin-getline-no-instance-of-overload-function)\n- **C++ iomanip Library:** [YouTube](https://www.youtube.com/watch?v=JAEKyNfqm0A)\n\n\u003c/details\u003e\n\n---\n\n#### **CPP Module 01**  \n- **Alocação dinâmica**, construção e destruição de objetos.  \n- **Objetivo**: Implementar um sistema de contato usando classes e arrays.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eModule 01 - Memory allocation, References, Pointers to members, File streams\u003c/summary\u003e\n\n- [ex00 - Classes, Member Functions, Pointers, Memory Allocation (stack vs. heap), Destructors](./CPP01/ex00/)\n- [ex01 - Arrays of Objects, Memory Allocation (array of objects), Object Initialization](./CPP01/ex01/)\n- [ex02 - Pointers, References, Memory Addresses](./CPP01/ex02/)\n- [ex03 - Composition, Aggregation, Object Relationships, Constructors, Setters](./CPP01/ex03/)\n- [ex04 - File I/O, Content copy to new file, Error Handling](./CPP01/ex04/)\n- [ex05 - Member Functions, Pointers to Member Functions, Enumeration, Logging](./CPP01/ex05/)\n- [ex06 - Switch Statement, Filtering, Logging](./CPP01/ex06/)\n  \n  ### Resources\n- **References in CPP:** [GeeksforGeeks](https://www.geeksforgeeks.org/references-in-c/)\n- **Pointer to member functions:** [CodeGuru](https://www.codeguru.com/cplusplus/c-tutorial-pointer-to-member-function/)\n- **C++ Pointers - GeeksforGeeks:** [GeeksforGeeks](https://www.geeksforgeeks.org/cpp-pointers/)\n- **How to Read File Line by Line in C++:** [Medium](https://medium.com/@teamcode20233/how-to-read-file-line-by-line-in-c-a1d829f697c0)\n- **C++ File Handling: How to Open, Write, Read, Close Files in C++:** [Guru99](https://www.guru99.com/cpp-file-read-write-open.html)\n\u003c/details\u003e\n\n---\n\n#### **CPP Module 02**  \n- **Operadores sobrecarregados** e referências.  \n- **Objetivo**: Criar um sistema simples de controle de pontos flutuantes.\n\n\u003cdetails\u003e\n\u003csummary\u003eModule 02 - Ad-hoc polymorphism, operators overload, and canonical classes\u003c/summary\u003e\n\n- [ex00 - Fixed-point numbers, Orthodox Canonical Form](./CPP02/ex00/)\n- [ex01 - Constructors (from int and float), Member Functions (toFloat, toInt), Operator Overloading](./CPP02/ex01/)\n- [ex02 - Operator Overloading (Comparison, Arithmetic, Increment/Decrement), Static Member Functions (min, max)](./CPP02/ex02/)\n\n  ### Resources\n- **Introduction to Fixed Point Number Representation:** [CS61c Spring 2006](https://inst.eecs.berkeley.edu//~cs61c/sp06/handout/fixedpt.html)\n- **Back To Basics! Fixed Point Numbers in C++:** [YouTube](https://www.youtube.com/watch?v=ZMsrZvBmQnU)\n- **Understanding and Using Floating Point Numbers :** [Cprogramming](https://www.cprogramming.com/tutorial/floating_point/understanding_floating_point.html)\n- **Printing floating point numbers - Cprogramming.com:** [Cprogramming.com](https://www.cprogramming.com/tutorial/floating_point/understanding_floating_point_printing.html)\n- **Copy Constructor in C++ - GeeksforGeeks:** [GeeksforGeeks](https://www.geeksforgeeks.org/copy-constructor-in-cpp/)\n- **Overloading the assignment operator - LearnCpp.com:** [LearnCpp.com](https://www.learncpp.com/cpp-tutorial/overloading-the-assignment-operator/?utm_content=cmp-true)\n- **Floating and fixed point representation in C++:** [Medium](https://medium.com/@oumaimafisaoui/floating-and-fixed-point-representation-in-c-what-is-going-on-b71af54718a5)\n- **Fixed Point Notation Basics :** [YouTube](https://www.youtube.com/watch?v=CONpWLc-tHA)\n- **Decimal to Floating Point Conversion :** [YouTube](https://www.youtube.com/watch?v=ZrlQpzc61Vc)\n- **IEEE 754 Standard for Floating Point Binary Arithmetic :** [YouTube](https://www.youtube.com/watch?v=RuKkePyo9zk)\n- **OPERATORS and OPERATOR OVERLOADING in C++ :** [YouTube](https://www.youtube.com/watch?v=mS9755gF66w)\n- **Overloading Increment and Decrement Operators in Postfix form :** [YouTube](https://www.youtube.com/watch?v=XJbA1AjW1zw)\n- **Overloading ++ for both pre and post increment  :** [stackoverflow](https://stackoverflow.com/questions/15244094/overloading-for-both-pre-and-post-increment)\n- **Check if a point lies inside a triangle :** [YouTube](https://www.youtube.com/watch?v=qObJQesvZUU)\n\u003c/details\u003e\n\n---\n\n#### **CPP Module 03**  \n- **Herança simples** e boas práticas.  \n- **Objetivo**: Desenvolver um modelo com herança e encapsulamento.\n\n\u003cdetails\u003e\n\u003csummary\u003eModule 03 - Inheritance\u003c/summary\u003e\n\n- [ex00 - Class implementation](./CPP03ex00/)\n- [ex01 - Inheritance, Constructors/Destructors Chaining, Overriding Member Functions](./CPP03/ex01/)\n- [ex02 - Inheritance, Constructors/Destructors Chaining, Overriding Member Functions](./CPP03ex02/)\n\n### Resources\n- **Inheritance And Polymorphism:** [YouTube](https://www.youtube.com/watch?v=wrkkAOMp3Sw)\n- **C++ What is class inheritance?:** [YouTube](https://www.youtube.com/watch?v=ptwZfAhI-kk)\n- **Multiple Inheritance in C++:** [geeksforgeeks](https://www.geeksforgeeks.org/multiple-inheritance-in-c/)\n- **Multiple Inheritance // Giving your classes multiple parents:** [YouTube](https://www.youtube.com/watch?v=JSBtx_f3WqM)\n- **Multiple Inheritance Deep Dive:** [YouTube](https://www.youtube.com/watch?v=sswTE0u0r7g)\n- **Hybrid Inheritance in C++ with Diamond Problem:** [YouTube](https://www.youtube.com/watch?v=DiUXoiOLZY0)\n\u003c/details\u003e\n\n\n---\n\n#### **CPP Module 04**  \n- **Polimorfismo** e **classes abstratas**.  \n- **Objetivo**: Explorar conceitos avançados de hierarquia.\n\n\u003cdetails\u003e\n\u003csummary\u003eModule 04 - Subtype polymorphism, abstract classes, interfaces\u003c/summary\u003e\n\n- [ex00 - Polymorphism, Inheritance, Virtual Functions](./CPP04/ex00/)\n- [ex01 - Memory Management, Deep Copy](./CPP04/ex01/)\n- [ex02 - Abstract Classes](./CPP04/ex02/)\n\n### Resources\n- **Polymorphism in C++ | Compile time vs Run time Polymorphism:** [YouTube](https://www.youtube.com/watch?v=uc_Hr10cBBE)\n- **C++ Subtype Polymorphism and Virtual Functions:** [YouTube](https://www.youtube.com/watch?v=avq_ITaqD-k)\n- **Virtual Functions \u0026 Abstract Classes in C++:** [YouTube](https://www.youtube.com/watch?v=JU8DbwBvOWE)\n- **Abstract Classes And Pure Virtual Functions:** [YouTube](https://www.youtube.com/watch?v=wE0_F4LpGVc)\n- **Declare abstract class in c++:** [stackoverflow](https://stackoverflow.com/questions/43502488/declare-abstract-class-in-c)\n- **C++ Programming/Classes/Abstract Classes/Pure Abstract Classes:** [Wikibooks](https://en.wikibooks.org/wiki/C++_Programming/Classes/Abstract_Classes/Pure_Abstract_Classes)\n- **What is the difference between abstract class and pure abstract class in C++?:** [stackoverflow](https://stackoverflow.com/questions/15253642/what-is-the-difference-between-abstract-class-and-pure-abstract-class-in-c)\n- **Interfaces in C++ (Pure Virtual Functions:** [YouTube](https://www.youtube.com/watch?v=UWAdd13EfM8)\n- **Interfaces in C++ (Pure virtual functions):** [YouTube](https://www.youtube.com/watch?v=8USgOF7x0hM)\n- **C++ Programming: Abstract and Interface Classes:** [YouTube](https://www.youtube.com/watch?v=GumbgtSUMMo)\n- **Abstract Class vs Pure Abstract Class | Interface | OOP C++:** [YouTube](https://www.youtube.com/watch?v=BkrISFxSn-4)\n- **What are Forward declarations in C++:** [geeksforgeeks](https://www.geeksforgeeks.org/what-are-forward-declarations-in-c/)\n- **What are forward declarations in C++?:** [stackoverflow](https://stackoverflow.com/questions/4757565/what-are-forward-declarations-in-c)\n- **C++ : How to copy / clone a STL List or Sub List:** [thispointer](https://thispointer.com/c-how-to-copy-clone-a-stl-list-or-sub-list/)\n\u003c/details\u003e\n\n---\n\n#### **CPP Module 05**  \n- **Exceções em C++**.  \n- **Objetivo**: Lidar com erros e exceções de forma robusta.\n\n---\n\n#### **CPP Modules 06 e 07**  \n- **Templates**: funções e classes genéricas.  \n- **Objetivo**: Resolver problemas que requerem flexibilidade.\n\n---\n\n#### **CPP Module 08**  \nTrabalho com **containers da STL**.  \n- **Objetivo**: Aprender a usar `vector`, `map`, `deque`, etc.\n\n---\n\n#### **CPP Module 09**  \n- **Programação avançada** com STL e algoritmos.  \n- **Objetivo**: Resolver problemas complexos de eficiência e ordenação.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frogeriols%2Fcpp-42sp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frogeriols%2Fcpp-42sp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frogeriols%2Fcpp-42sp/lists"}