C++ is a programming language known for its fast speed, low level memory management and is often taught as first programming language.
- Used for making operating systems, embedded systems, graphical user interfaces and nowadays in High Frequency Trading (HFT) systems.
- Supports both low-level and high-level features such as manual memory management and Object Oriented Programming respectively.
- Syntax similarity with C, Java, and C# makes it easier to switch languages.
- Provides one of the fastest execution speeds among high level languages, which can be a deciding factor in Competitive Programming or high-performance applications.
Basics
Before starting with C++ basics, first set up the C++ development environment. Install a C++ compiler and choose an IDE such as Visual Studio Code, Code::Blocks, to write, compile, run, and debug C++ programs.
- Introduction
- Basic Input / Output
- Identifiers
- Keywords
- Variables
- Data Types
- Operators
- Conditional Statements
- Loops
Function
Functions allow users to divide the program into multiple blocks each performing a specific task. This section teaches you how to work with functions to write a modular and reusable code.
- Functions
- Function Overloading
- Parameter Passing
- Default Arguments
- Inline Functions
- Recursion
- Lambda Expression
Arrays and Strings
Arrays and Strings are fundamental data structures used to store and manipulate collections of data efficiently, enabling organized data management and text processing in C++.
Pointers and References
Pointers and References are features used to access, manage, and manipulate memory efficiently, enabling dynamic memory management and optimized program performance.
User Defined Data Types
User-defined data types allow programmers to create custom data structures that organize related data together, making programs more structured, readable, and easier to maintain.
Dynamic Memory Management
C++ allows the low-level memory manipulation using pointers and dynamic memory allocation/deallocation operators. This section guides you through the basis of dynamic memory management.
Object Oriented Programming (OOP)
This section covers key concepts of Object-Oriented Programming (OOP) in C++ such as classes, objects, encapsulation, inheritance, polymorphism, and abstraction.
- Object Oriented Programming (OOP)
- Classes and Objects
- Constructors
- Encapsulation
- Polymorphism
- Inheritance
- Abstraction
Standard Template Library (STL)
This section covers Standard Template Library (STL) which is an in-built library that provides a set of commonly used data structures such as vectors, lists, stacks, queues, maps, etc. and algorithms that enhance productivity and performance.
Exception Handling
Exception handling are the techniques to handle runtime errors efficiently. This section covers how to handle exceptions to prevent crashes and improve the reliability of applications.
File Handling
File handling allows programs to store and retrieve data from files. This section introduces file handling in C++ using streams. It covers reading from and writing to files using streams.
Multithreading
Multithreading allows a program to perform multiple tasks simultaneously by executing multiple threads within a single process.
- Introduction
- Creating Threads
- std::thread::join()
- Detach a Thread
- Mutex
- Lock Guard
- Race Conditions
- Thread Synchronization
Advanced Concepts
This section covers advanced concepts in C++ such as move preprocessor, etc. Mastering these topics allows developers to write efficient, high-performance C++ applications.
Skill Assessments
Test what you have learnt through this C++ using a series of our Skill Assessment Test.
- Beginner Skill Assessment Practice Test
- Intermediate Skill Assessment Practice Test
- Advanced Skill Assessment Practice Test
Interview Questions
Quickly prepare yourself for C++ interviews with the help of our carefully curated list of commonly asked interview questions.