Skip to content

This repository contains C++ programs written to strengthen my programming fundamentals and prepare for embedded systems development.

Notifications You must be signed in to change notification settings

morlabhaskar/CPP-PROGRAMMING

Repository files navigation

C++ Programming Practice for Software & Embedded Systems

This repository contains C++ programs written to strengthen my programming fundamentals, improve problem-solving skills, and prepare for both software development and embedded systems programming.
It serves as a personal practice space for exploring OOP, STL, low-level memory concepts, and hardware-oriented C++ patterns.


Badges

C++17 Compiler-GCC Editor-VSCode Platform-Windows%20%7C%20Linux Embedded-Friendly


Overview

This repository contains C++ programs that focus on:

  • Object-oriented programming
  • Memory management
  • STL containers and algorithms
  • Templates and generic programming
  • Embedded-friendly low-level concepts

It is designed to help build strong foundations for system programming, competitive coding, and embedded firmware development using modern C++.


Purpose

The main objectives of this repository are to:

  • Build a strong foundation in modern C++ (C++11–C++20)
  • Practice problem-solving and algorithmic thinking
  • Strengthen OOP concepts such as inheritance and polymorphism
  • Master STL containers, iterators, and algorithms
  • Understand pointers, references, dynamic memory, RAII, and smart pointers
  • Practice bitwise operations, memory layout, and embedded-oriented patterns
  • Prepare for system-level development, microcontrollers, and firmware programming

Contents

This repository includes:

1. Basic C++ Programs

  • Variables, loops, operators
  • Functions, inline functions, default parameters
  • Basic file handling and I/O

2. Object-Oriented Programming

  • Classes and objects
  • Constructors, destructors
  • Inheritance and polymorphism
  • Virtual functions
  • Operator overloading
  • Friend functions/classes

3. STL (Standard Template Library)

  • Vectors, lists, deques
  • Stacks, queues, priority queues
  • Maps, sets, unordered containers
  • Iterators and STL algorithms
  • Lambda expressions

4. Pointers & Memory Management

  • Pointer and reference basics
  • Dynamic memory (new/delete)
  • Memory safety
  • Smart pointers (unique_ptr, shared_ptr)
  • RAII principles

5. Templates & Generic Programming

  • Function templates
  • Class templates
  • Template specialization
  • Modern type deduction

6. Data Structures & Algorithms

  • Sorting and searching techniques
  • Linked lists, stacks, queues
  • Trees and graphs
  • Recursion, dynamic programming, greedy methods

7. Low-Level & Embedded-Friendly C++

  • Bitwise operations and masking
  • Structures and unions
  • Memory layout and alignment basics
  • Simulated registers and I/O handling (mock)
  • Writing C++ with embedded constraints

8. File Handling

  • Text and binary file operations
  • Logging and debugging utilities

Tools & Requirements

  • Compiler: GCC
  • Editor/IDE: VS Code, Keil uVision (optional for embedded C++)
  • OS: Windows
  • C++ Standard: C++17 or later
  • Optional Tools:
    • GDB debugger
    • QEMU, Proteus, or any MCU IDE for embedded development

Short Version

This repository contains C++ programs focused on OOP, STL, memory handling, low-level programming, and embedded-friendly C++.
It helps build strong fundamentals for system programming, competitive programming, and firmware development.


About

This repository contains C++ programs written to strengthen my programming fundamentals and prepare for embedded systems development.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published