{"id":21315498,"url":"https://github.com/rajsoni03/cplusplus-training","last_synced_at":"2025-08-04T06:33:27.628Z","repository":{"id":112055275,"uuid":"463454931","full_name":"Rajsoni03/CPlusPlus-Training","owner":"Rajsoni03","description":"C Plus Plus Training Class Codes and Notes","archived":false,"fork":false,"pushed_at":"2022-06-19T05:55:26.000Z","size":64043,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-15T21:32:14.249Z","etag":null,"topics":["c","c-plus-plus","core","cpp","oops-in-cpp"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Rajsoni03.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2022-02-25T08:27:13.000Z","updated_at":"2024-08-27T14:58:57.000Z","dependencies_parsed_at":"2023-05-04T11:35:39.952Z","dependency_job_id":null,"html_url":"https://github.com/Rajsoni03/CPlusPlus-Training","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Rajsoni03/CPlusPlus-Training","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rajsoni03%2FCPlusPlus-Training","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rajsoni03%2FCPlusPlus-Training/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rajsoni03%2FCPlusPlus-Training/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rajsoni03%2FCPlusPlus-Training/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Rajsoni03","download_url":"https://codeload.github.com/Rajsoni03/CPlusPlus-Training/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rajsoni03%2FCPlusPlus-Training/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268657982,"owners_count":24285606,"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","status":"online","status_checked_at":"2025-08-04T02:00:09.867Z","response_time":79,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["c","c-plus-plus","core","cpp","oops-in-cpp"],"created_at":"2024-11-21T18:20:50.401Z","updated_at":"2025-08-04T06:33:27.552Z","avatar_url":"https://github.com/Rajsoni03.png","language":"C++","readme":"# CPlusPlus-Training (In-Depth)\n\n## Day 1 ([PDF](/PDF_Notes/Day-1.pdf))\n* C philosophy (data + algo)\n* Language Growth\n* Compiler \n* Compilation stages (Source Code -\u003e Object Code -\u003e Executable File)\n* File extension\n* GCC Commands\n  ```bash\n  # compile source file without linking \n  # (source file -\u003e object file)\n  g++ -c source_file.cpp\n  ```\n  ```bash\n  # linked object file with header and crteate executable file \n  # (object file -\u003e executable file)\n  g++ object_file.o -o executable_file.exe\n  ```\n  ```bash\n  # compile and create executable file at once\n  # (source file -\u003e executable file)\n  g++ source_file.cpp -o executable_file.exe\n  ```\n  ```bash\n  # run the code\n  ./executable_file.exe\n  ```\n* Hello World Code\n* `main()` Function\n  * minimun code in source file\n  * alternate ways to write `main()`\n* Commants \n  * Single Line Commants ` /* */ `\n  * Multi line Commants ` // `\n\n## Day 2 ([PDF](/PDF_Notes/Day-2.pdf))\n* Source Code Formatting  \n* Program and Process\n* Process Memory Allocation in OS\n* `cout` and `printf`\n* `cout` Concatenation \n* `endl` and `\\n`\n* `cin` and `scanf` \n\n## Day 3 ([PDF](/PDF_Notes/Day-3.pdf))\n* preprocessor directives\n  * #include \u003cmath.h\u003e and \u003ccmath\u003e\n  * #define (macro)\n* namespace \n* using\n* variable declaration  \n  * Identifiers name\n* Integer types\n  * `short`\n  * `int`\n  * `long`\n  * `long long`\n* `sizeof()` operator \n* limits \n\n## Day 4 ([PDF](/PDF_Notes/Day-4.pdf))\n* `signed` integers\n* `unsigned` integers\n* overflow problem\n\n## Day 5 ([PDF](/PDF_Notes/Day-5.pdf))\n* variable initialization\n  * C style initialization ` = `\n  * constructor initialization `()`\n  * uniform initialization `{}`\n* integer literals\n  * decimal\n  * hexadecimal\n  * octal\n  * binary\n* cout manipulators\n  * `dec`\n  * `hex`\n  * `oct`\n* format specifier in c\n  * `%d`\n  * `%x`\n  * `%o`\n\n\n## Day 6 ([PDF](/PDF_Notes/Day-6.pdf))\n* Memory resources lock and unlock (Garbage value concept)\n* `char`\n  * `wchar_t`\n  * `char16_t`\n  * `char32_t`\n* ASCII\n* Unicode\n* Unicode as identifier\n* `cin.get()`\n* `cout.put()`\n\n\n## Day 7 ([PDF](/PDF_Notes/Day-7.pdf))\n* floating type\n  * `float`\n  * `double`\n  * `long double`\n* Scientific Notation\n* float limitations\n* float opperations\n* `bool`\n\n## Day 8 ([PDF](/PDF_Notes/Day-8.pdf))\n* `auto`\n* `decltype`\n* `string`\n* Operators\n  * Assignment Operator `=`\n  * Arithmetic Operators `+`, `-`, `*`, `/`, `%`\n  * Compound Operators `+=`, `-=`, `*=`, `/=`, `%=`, `\u003e\u003e=`, `\u003c\u003c=`, `\u0026=`, `^=`, `|=`\n  * Increment and Decrement `++`, `--`\n  * Comparison Operators `==`, `!=`, `\u003e`, `\u003c`, `\u003e=`, `\u003c=` \n  * Logical Operators `!`, `\u0026\u0026`, `||`\n  * Conditional Ternary Operator `?` \n  * Precedence of Operators\n\n## Day 9 ([PDF](/PDF_Notes/Day-9.pdf))\n* Type Conversion\n* Implicit Type Conversion\n  * Conversion on Initialization\n    * With `=`\n    * With `()`\n    * With `{}`\n  * Conversion in Expessions\n  * Conversion in Passing Arguments\n* Type Casting \n  * `(type) value`\n  * `type (value)`\n  * `static_cast\u003ctype\u003e (value)`\n\n## Day 10 ([PDF](/PDF_Notes/Day-10.pdf))\n* Functions\n* Using a function (Library Functions)\n* User define functions\n  * Function declaration\n  * Function call\n  * Parameters\n  * Return Type \n* Function Execution\n* Memory Allocation of Local Variables (Stack)\n* Function Variations\n* Ambiguity in function call\n* Type Conversion in Passing Arguments\n\n## Day 11 ([PDF](/PDF_Notes/Day-11.pdf))\n* Flow Control\n  * if-else\n  * for\n  * while\n  * do while\n  * switch\n* comma `,` operator \n\n## Day 12 ([PDF](/PDF_Notes/Day-12.pdf))\n* Array\n* array declearation \n* memory allocation\n* sizeof array\n* indexing\n* initialization \n  * uniform initialization `{}`\n* default value \n\n\n## Day 13 ([PDF](/PDF_Notes/Day-13.pdf))\n* Function \n  * Pass by value\n  * Pass by Referance\n* Array Traversal\n* For each loop / range based for loop\n* Aliasing in for loop\n* Pass array in function parameters\n\n\n## Day 14 ([PDF](/PDF_Notes/Day-14.pdf))\n* Charactor Array\n* null charactor `\\0`\n* Create length function (strlen)\n\n\n## Day 15 ([PDF](/PDF_Notes/Day-15.pdf))\n* Create copy function (strcpy)\n* Create comparison function (strcmp)\n* Create concatenate function (strcat)\n* memory allocation in stack\n* address of operator `\u0026`\n* pointers declearation \n* dereference operator `*`\n* create pointer using integer variable\n\n\n## Day 16 ([PDF](/PDF_Notes/Day-16.pdf))\n* Pointers memory resloving\n* Pointers arithmetics\n  * `ptr++`\n  * `ptr--`\n  * `*ptr++`\n  * `*(ptr++)`\n  * `(*ptr)++`\n  * `++*ptr`\n  * `*++ptr`\n  * `*(++ptr)`\n  * `++*ptr++`\n  * `(++*ptr)++`\n  * `++(*ptr++)`\n  * `++*--ptr++`\n  \n\n##  Day 17 ([PDF](/PDF_Notes/Day-17.pdf))\n* Array Pointers \n* Array element access using pointers\n* Pointer in function return type\n* Dynemic memory allocation `new`* \n\n\n## Day 18 ([PDF](/PDF_Notes/Day-18.pdf))\n* Const Pointers \n```C++\nconst int* ptr = \u0026var;\nint* const  ptr = \u0026var;\nconst int* const ptr = \u0026var;\n```\n```C++\n// Both are same\nconst int *ptr = \u0026var;\nint const *ptr = \u0026var;\n```\n* Deallocate Dynamic memory \n  * `delete`\n  * `delete[]`\n\n## Day 19 ([PDF](/PDF_Notes/Day-19.pdf))\n* Add element to static Array\n* Pointer to Pointers\n* String \n  * initialization\n  * `size()`\n  * `length()`\n  * `at()`\n  * `operator[]`\n  * `front()`\n  * `back()`\n  * `operator+=`\n  * `append()`\n  * `insert()`\n  * `push_back()`\n  * `pop_back()`\n\n## Day 20 ([PDF](/PDF_Notes/Day-20.pdf))\n* 2D Array\n  * Declaration \n  * Initialization \n  * Uniform Initialization \n  * Memory Allocation\n* 2D Array with pointerm\n  * Different size array\n  * Non-continous memory allocation\n* Multi Dimentional Array \n\n## Day 21 ([PDF](/PDF_Notes/Day-21.pdf))\n* Add element to dynamic Array (vector)\n* remove element to dynamic Array (vector)\n\n## Day 22 ([PDF](/PDF_Notes/Day-22.pdf))\n* Structure - `struct`\n  * Declaration \n  * List Initialization \n  * Uniform Initialization \n  * Global and Local Struct\n  * Unnamed Struct\n  * Memory Allocation / Size of Struct\n  * Array of Struct (SOA)\n  * Struct of Array (AOS)\n  * Struct Pointer\n  * `-\u003e` operator\n  * Struct in heap\n\n## Day 23 ([PDF](/PDF_Notes/Day-23.pdf))\n* Union - `union`\n  * Declaration \n  * Initialization \n  * Memory Allocation / Size of Union\n  * Example of union\n  * Unnamed Union\n  * Nested Union\n  * Anonymous Union\n* Enumeration - `enum`\n  * Declaration \n  * Initialization\n  * Enum to int \n  * Anonymous Enum\n  * Enum class\n\n## Day 24 ([PDF](/PDF_Notes/Day-24.pdf))\n* revision of dynamic array\n  * add element\n  * remove element\n  * double the size \n* vector example\n  * `push_back()`\n  * `pop_back()`\n  * `size()`\n  * `capacity()`\n\n## Day 25 ([PDF](/PDF_Notes/Day-25.pdf))\n* `cstring` header\n  * `strlen()`\n  * `strcpy()`\n  * `strcmp()`\n  * `strcat()`\n  * `strchr()`\n* `cctype` header\n  * `isalnum()`\n  * `isalpha()`\n  * `isdigit()`\n  * `islower()`\n  * `isupper()`\n  * `ispunct()`\n  * `isspace()`\n  * `toupper()`\n  * `tolower()`\n\n## Assignment Test 1 \n* [Questions](/Assignment_1/Assignment_Questions.pdf)\n* [Result](/Assignment_1/Result.pdf)\n\n## Day 26 ([PDF](/PDF_Notes/Day-26.pdf))\n* file handling \n  * `ofstream`\n    * `open()` method\n    * open using constructor call\n    * create file / overwrite file\n    * write using `\u003c\u003c` operator\n    * append text using `ios::app`\n    * `close()` method\n    * create `csv` file\n  * `ifstream`\n    * `open()` method\n    * open using constructor call\n    * read file using `\u003e\u003e` operator\n    * read lines using `getline()`\n    * create function for read a specific line\n    * read data from `csv` filearee \n\n## Day 27 ([PDF](/PDF_Notes/Day-27.pdf))\n* File Handling \n  * read string and convert to structure \n  * implement search function for file\n  * `fstream`\n    * `ios::in`\n    * `ios::out`\n    * `ios::app`\n  * read and write at same time\n  * `eof()`\n  * `fail()`\n  * `good()`\n  * `bad()`\n\n## Project 1 - Bank Application\n* [Open Details](/Project/BankApplication.cpp)\n\n## Day 28 ([PDF](/PDF_Notes/Day-28.pdf))\n* Function Prototypes\n* Functions to process array (const pointers)\n* Function using Array Ranges\n* Return c-string \n* Recursion \n\n## Assignment Test 2\n* [Questions](/Assignment_2/Assignment_Questions.pdf)\n* [Result](/Assignment_2/Result.pdf)\n\n## Day 29 ([PDF](/PDF_Notes/Day-29.pdf))\n* Pointer to Function\n\n## Day 30 ([PDF](/PDF_Notes/Day-30.pdf))\n* Inline Function\n* Macro Function\n* Const reference in parameter\n* Return reference \n\n## Day 31 ([PDF](/PDF_Notes/Day-31.pdf))\n* Return pointer\n* Default Arguments\n* Function Templates\n* Explicit Specialization \n* Trailing return type `-\u003e`\n\n## Day 32 ([PDF](/PDF_Notes/Day-32.pdf))\n* Namespace\n  * `namespace`\n  * scope resolution operator `::`\n  * `using`\n  * namespace aliasing\n* Classes\n  * `class` declaration\n  * `class` vs `struct`\n  * member variables\n  * member methods\n  * object\n  * access modifiers\n    * public \n    * private\n    * protected\n    \n## Day 33 ([PDF](/PDF_Notes/Day-33.pdf))\n* Constructor\n  * Default Constructor\n  * Parameterized Constructor\n* Constructor Overloading\n* `this` pointer\n* Data Hiding\n* Encapsulation\n\n## Day 34 ([PDF](/PDF_Notes/Day-34.pdf))\n* Object initialization\n```C++\n  Cube c1;        // Default Constructor\n  Cube c2();      // Function Declaration (Object Not Created)\n  Cube c3(10);    // Parameterized Constructor\n  Cube c4{};      // Uniform Initialization with Default Constructor\n  Cube c5{10};    // Uniform Initialization with Parameterized Constructor\n  Cube c6 = {};   // Assignment Initialization with Default Constructor\n  Cube c7 = {10}; // Assignment Initialization with Parameterized Constructor\n  Cube c8 = 10;   // Default Constructor (works if class have only one data member)\n```\n* Distructor \n* Object in heap using `new` \u0026 `delete`\n* Life of an Object \n  * In block\n  * In stack\n  * In heap\n\n## Day 35 - Extra Class ([PDF](/PDF_Notes/Day-35.pdf))\n* Return array of string\n* `getline()` vs `cin.getline()`\n* Return address of local stack variable\n* Access the value of deallocated memory \n  * In Stack\n  * In Heap\n\n## Day 36 ([PDF](/PDF_Notes/Day-36.pdf))\n* Member initialization in constructors\n* Const member \n  * Enum\n  * Scoped enum\n  * Static\n* Static Variables\n* Static Methods\n* Scope \n\n## Day 37 ([PDF](/PDF_Notes/Day-37.pdf))\n* Const Member Functions\n* Copy Constructor\n  * why const in parameter\n  * why \u0026obj in parameter\n\n\n## Day 38 ([PDF](/PDF_Notes/Day-38.pdf))\n* Operator Overloading\n  * operator[] for access array element\n  * operator+ for array concat\n* Copy Assignment\n\n## Day 39 ([PDF](/PDF_Notes/Day-39.pdf))\n* Inharitance\n  * single \n  * multilevel\n  * multiple\n  * hierarchical\n  * hybrid\n* visibility mode\n  * public inharitance\n  * protected inharitance\n  * private inharitance\n* constructor call sequence\n* distructor call sequence\n* constructor parameters \n* variable ambiguity resolution using virtual base class\n* method ambiguity resolution \n  * using virtual base class\n  * overriding\n  * overriding and scope resolution `::`\n\n## Day 40 ([PDF](/PDF_Notes/Day-40.pdf))\n* Polymorphism\n  * Compile Time Polymorphism / Early Binding / Static linking\n    * Function overloading\n    * Operator overloading\n  * Run Time Polymorphism / Late Binding / Dynamic Binding or Linking\n    * Virtual Functions\n* Friend Functions\n\n## Day 41 ([PDF](/PDF_Notes/Day-41.pdf))\n* Abstraction \n* Pure Virtual Functions\n* Abstract Classes\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frajsoni03%2Fcplusplus-training","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frajsoni03%2Fcplusplus-training","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frajsoni03%2Fcplusplus-training/lists"}