Skip to content

Andrefcampos/CPP_42sp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CPP Modules

42 São Paulo

Table of Contents

About

The CPP Module project is part of the curriculum at 42 São Paulo. This project aims to deepen the understanding of C++ programming by exploring advanced concepts and features of the language, such as object-oriented programming, templates, exception handling, and more.

Modules

This project is divided into several modules, each focusing on different aspects of C++:

  • Module00: Basics of C++ (namespaces, classes, member functions, stdio streams, initialization lists, static, const, and more);
  • Module01: Memory Allocation (new, delete, pointers to members, references, file streams);
  • Module02: Ad-hoc Polymorphism, Operators Overloading;
  • Module03: Inheritance;
  • Module04: Subtype Polymorphism, Abstract Classes, Interfaces;
  • Module05: Repetition and Exceptions;
  • Module06: C++ Casts;
  • Module07: Templates;
  • Module08: Templated Containers, Iterators, Algorithms;
  • Module09: Repetition and Containers.

Requirements

  • A C++ compiler supporting C++98 standard.
  • Make utility for building the project.

How to Compile

Each module comes with a Makefile to ease the compilation process. Navigate to the module directory and run the following command in the terminal:

make

This will compile the project and generate the executable file.

To clean up the object files generated during compilation:

make clean

To clean all generated files, including the executable:

make fclean

To recompile the project from scratch:

make re

How to Use

After compiling the project, run the generated executable from the terminal:

./module_executable

or you can run with valgrind using:

make run

Each module may have specific instructions on how to use and test the features implemented. Refer to the module's README or documentation for detailed usage.

File Structure

The project directory structure is organized as follows:

cpp_42sp/
├── module00/
│   ├── includes/
│   │   └── example.hpp
│   ├── srcs/
│   │   ├── main.cpp
│   │   └── example.cpp
│   ├── Makefile
│   ├── README.md
├── module01/
│   ├── includes/
│   │   └── another_example.hpp
│   ├── srcs/
│   │   ├── main.cpp
│   │   └── another_example.cpp
│   ├── Makefile
│   ├── README.md
├── ...
├── LICENSE
└── README.md
  • module00/, module01/, ...: Directories for each module containing their respective source code, headers, and Makefiles;
  • includes/: Contains the header files;
  • srcs/: Contains the source code files;
  • Makefile: Build script for the module;
  • README.md: Documentation for the module;
  • LICENSE: License file for the project.

Contributing

Contributions are welcome! If you want to contribute to this project, please follow the steps below:

  1. Fork the project;
  2. Create a branch for your feature (git checkout -b feature/new-feature);
  3. Commit your changes (git commit -am 'Add new feature');
  4. Push to the branch (git push origin feature/new-feature);
  5. Create a new Pull Request.

License

This project is licensed under the MIT License. See the LICENSE file for more details.

About

Repository to cpp List

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published