Basics
Boilerplate
#include <iostream>using namespace std; int main() { cout << "Welcome To CodeWithHarry"; return 0;}
Input/Output
- Output (
cout <<) – Prints to console - Input (
cin >>) – Takes user input
string name;cout << "Enter name: ";cin >> name;cout << "Hello, " << name;
Data Types
C++ supports several data types, divided into categories:
| Type | Example | Size (Typical) | Description |
|---|
char | char c='A'; | 1 byte | Stores single character |
int | int x=10; | 4 bytes | Integer numbers |
short | short s=100; | 2 bytes | Small integer |
long | long l=100000; | 4-8 bytes | Large integer |
float | float f=10.5; | 4 bytes | Single-precision decimal |
double | double d=10.55; | 8 bytes | Double-precision decimal |
bool | bool flag=true; | 1 byte | True/False values |
void | – | – | Represents no value |
Escape Sequences
| Sequence | Meaning |
|---|
\a | Alert (beep) |
\b | Backspace |
\f | Form feed |
\n | Newline |
\r | Carriage return |
\t | Horizontal tab |
\\ | Backslash |
\' | Single quote |
\" | Double quote |
\? | Question mark |
\0 | Null terminator |
\nnn | Octal value |
\xhh | Hexadecimal value |
Comments
// Single-line comment /* Multi-line comment */
Strings
#include <string> string s1 = "Hello";string s2 = "World"; // Concatenationstring s3 = s1 + " " + s2; // Appends1.append(s2); // Lengthcout << s3.length(); // Access/modifys3[0] = 'h';
Math Functions (<cmath>)
| Function | Example | Result |
|---|
max(a,b) | max(5,10) | 10 |
min(a,b) | min(5,10) | 5 |
sqrt(x) | sqrt(144) | 12 |
ceil(x) | ceil(1.9) | 2 |
floor(x) | floor(1.9) | 1 |
pow(x,y) | pow(2,3) | 8 |
abs(x) | abs(-5) | 5 |
round(x) | round(2.6) | 3 |
Decision Making
if (x > 0) { ... }else if (x == 0) { ... }else { ... } // Ternaryint result = (x > 0) ? 1 : -1; // Switchswitch (choice) { case 1: cout << "One"; break; case 2: cout << "Two"; break; default: cout << "Other";}
Loops
// While loopwhile (i < 5) { i++; } // Do-while loopdo { i++; } while (i < 5); // For loopfor (int i=0; i<5; i++) { ... } // Break/Continuebreak; // exits loopcontinue; // skips current iteration
References
int a = 10;int &ref = a;ref = 20; // a becomes 20
Pointers
int x = 10;int *ptr = &x; // Pointer to xcout << *ptr; // Dereference (prints 10)
nullptr is used for null pointers in C++11+- Use
-> operator to access members of objects through pointers
Functions & Recursion
int add(int a, int b) { return a + b;} // Recursionint factorial(int n) { if (n <= 1) return 1; return n * factorial(n-1);}
Object-Oriented Programming
Class & Object
class Car {public: string brand; int year; void drive() { cout << "Driving"; }}; Car c1;c1.brand = "BMW";c1.drive();
Constructor
class Car {public: Car(string b, int y) { brand = b; year = y; } string brand; int year;};Car c("Audi", 2023);
Inheritance
class Vehicle {public: void honk() { cout << "Beep!"; }}; class Car : public Vehicle { }; Car obj;obj.honk(); // Inherited method
Polymorphism (Virtual Functions)
class Animal { public: virtual void sound() { cout<<"Some sound"; }};class Dog : public Animal { public: void sound() override { cout<<"Bark"; }};Animal* a = new Dog();a->sound(); // Bark
File Handling
#include <fstream>ofstream myFile("test.txt"); // writemyFile << "Hello";myFile.close(); ifstream readFile("test.txt"); // readstring line;while (getline(readFile, line)) { cout << line; }readFile.close();
- Modes:
ios::in, ios::out, ios::app, ios::binary, ios::ate, ios::trunc
Exception Handling
try { throw runtime_error("Error occurred");}catch (exception &e) { cout << "Caught: " << e.what();}
Additional Key Concepts
- Namespaces: Avoids name conflicts
namespace A { int x = 10; }cout << A::x;
- Templates: Generic programming
template <typename T>T add(T a, T b) { return a + b; }
- STL (Standard Template Library):
vector, map, set, stack, etc.